/* Generated by Cython 3.0.8 */

/* BEGIN: Cython Metadata
{
    "distutils": {
        "define_macros": [
            [
                "NPY_NO_DEPRECATED_API",
                "NPY_1_7_API_VERSION"
            ]
        ],
        "depends": [
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include/numpy/arrayobject.h",
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include/numpy/arrayscalars.h",
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include/numpy/ndarrayobject.h",
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include/numpy/ndarraytypes.h",
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include/numpy/ufuncobject.h"
        ],
        "extra_compile_args": [
            "-Wno-parentheses-equality",
            "-Wno-unreachable-code-fallthrough"
        ],
        "extra_objects": [
            "./sndlib/libsndlib.a"
        ],
        "include_dirs": [
            "/private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/core/include",
            "./sndlib"
        ],
        "name": "pysndlib.generators",
        "sources": [
            "src/pysndlib/generators.pyx"
        ]
    },
    "module_name": "pysndlib.generators"
}
END: Cython Metadata */

#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif /* PY_SSIZE_T_CLEAN */
#if defined(CYTHON_LIMITED_API) && 0
  #ifndef Py_LIMITED_API
    #if CYTHON_LIMITED_API+0 > 0x03030000
      #define Py_LIMITED_API CYTHON_LIMITED_API
    #else
      #define Py_LIMITED_API 0x03030000
    #endif
  #endif
#endif

#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 < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
    #error Cython requires Python 2.7+ or Python 3.3+.
#else
#if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
#define __PYX_EXTRA_ABI_MODULE_NAME "limited"
#else
#define __PYX_EXTRA_ABI_MODULE_NAME ""
#endif
#define CYTHON_ABI "3_0_8" __PYX_EXTRA_ABI_MODULE_NAME
#define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
#define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
#define CYTHON_HEX_VERSION 0x030008F0
#define CYTHON_FUTURE_DIVISION 1
#include <stddef.h>
#ifndef offsetof
  #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(_WIN32) && !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
  #define HAVE_LONG_LONG
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
#if defined(GRAALVM_PYTHON)
  /* For very preliminary testing purposes. Most variables are set the same as PyPy.
     The existence of this section does not imply that anything works or is even tested */
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 1
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 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_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE 0
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(PYPY_VERSION)
  #define CYTHON_COMPILING_IN_PYPY 1
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #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_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
  #endif
  #if PY_VERSION_HEX < 0x03090000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 0
  #undef CYTHON_USE_TP_FINALIZE
  #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(CYTHON_LIMITED_API)
  #ifdef Py_LIMITED_API
    #undef __PYX_LIMITED_VERSION_HEX
    #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
  #endif
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 1
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #undef CYTHON_CLINE_IN_TRACEBACK
  #define CYTHON_CLINE_IN_TRACEBACK 0
  #undef CYTHON_USE_TYPE_SLOTS
  #define CYTHON_USE_TYPE_SLOTS 0
  #undef CYTHON_USE_TYPE_SPECS
  #define CYTHON_USE_TYPE_SPECS 1
  #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
  #undef CYTHON_USE_UNICODE_INTERNALS
  #define CYTHON_USE_UNICODE_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #endif
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #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_GIL
  #define CYTHON_FAST_GIL 0
  #undef CYTHON_METH_FASTCALL
  #define CYTHON_METH_FASTCALL 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #undef CYTHON_PEP489_MULTI_PHASE_INIT
  #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #undef CYTHON_USE_MODULE_STATE
  #define CYTHON_USE_MODULE_STATE 1
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
  #endif
#elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 0
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 1
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #undef CYTHON_USE_PYTYPE_LOOKUP
  #define CYTHON_USE_PYTYPE_LOOKUP 0
  #ifndef CYTHON_USE_ASYNC_SLOTS
    #define CYTHON_USE_ASYNC_SLOTS 1
  #endif
  #undef CYTHON_USE_PYLIST_INTERNALS
  #define CYTHON_USE_PYLIST_INTERNALS 0
  #ifndef CYTHON_USE_UNICODE_INTERNALS
    #define CYTHON_USE_UNICODE_INTERNALS 1
  #endif
  #undef CYTHON_USE_UNICODE_WRITER
  #define CYTHON_USE_UNICODE_WRITER 0
  #undef CYTHON_USE_PYLONG_INTERNALS
  #define CYTHON_USE_PYLONG_INTERNALS 0
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #undef CYTHON_FAST_THREAD_STATE
  #define CYTHON_FAST_THREAD_STATE 0
  #undef CYTHON_FAST_PYCALL
  #define CYTHON_FAST_PYCALL 0
  #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #undef CYTHON_USE_DICT_VERSIONS
  #define CYTHON_USE_DICT_VERSIONS 0
  #undef CYTHON_USE_EXC_INFO_STACK
  #define CYTHON_USE_EXC_INFO_STACK 0
#else
  #define CYTHON_COMPILING_IN_PYPY 0
  #define CYTHON_COMPILING_IN_CPYTHON 1
  #define CYTHON_COMPILING_IN_LIMITED_API 0
  #define CYTHON_COMPILING_IN_GRAAL 0
  #define CYTHON_COMPILING_IN_NOGIL 0
  #ifndef CYTHON_USE_TYPE_SLOTS
    #define CYTHON_USE_TYPE_SLOTS 1
  #endif
  #ifndef CYTHON_USE_TYPE_SPECS
    #define CYTHON_USE_TYPE_SPECS 0
  #endif
  #ifndef 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
  #ifndef 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 || PY_VERSION_HEX >= 0x030B00A2
    #undef CYTHON_USE_UNICODE_WRITER
    #define CYTHON_USE_UNICODE_WRITER 0
  #elif !defined(CYTHON_USE_UNICODE_WRITER)
    #define CYTHON_USE_UNICODE_WRITER 1
  #endif
  #ifndef CYTHON_AVOID_BORROWED_REFS
    #define CYTHON_AVOID_BORROWED_REFS 0
  #endif
  #ifndef CYTHON_ASSUME_SAFE_MACROS
    #define CYTHON_ASSUME_SAFE_MACROS 1
  #endif
  #ifndef CYTHON_UNPACK_METHODS
    #define CYTHON_UNPACK_METHODS 1
  #endif
  #ifndef CYTHON_FAST_THREAD_STATE
    #define CYTHON_FAST_THREAD_STATE 1
  #endif
  #ifndef CYTHON_FAST_GIL
    #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
  #endif
  #ifndef CYTHON_METH_FASTCALL
    #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
  #endif
  #ifndef CYTHON_FAST_PYCALL
    #define CYTHON_FAST_PYCALL 1
  #endif
  #ifndef CYTHON_PEP487_INIT_SUBCLASS
    #define CYTHON_PEP487_INIT_SUBCLASS 1
  #endif
  #if PY_VERSION_HEX < 0x03050000
    #undef CYTHON_PEP489_MULTI_PHASE_INIT
    #define CYTHON_PEP489_MULTI_PHASE_INIT 0
  #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
    #define CYTHON_PEP489_MULTI_PHASE_INIT 1
  #endif
  #ifndef CYTHON_USE_MODULE_STATE
    #define CYTHON_USE_MODULE_STATE 0
  #endif
  #if PY_VERSION_HEX < 0x030400a1
    #undef CYTHON_USE_TP_FINALIZE
    #define CYTHON_USE_TP_FINALIZE 0
  #elif !defined(CYTHON_USE_TP_FINALIZE)
    #define CYTHON_USE_TP_FINALIZE 1
  #endif
  #if PY_VERSION_HEX < 0x030600B1
    #undef CYTHON_USE_DICT_VERSIONS
    #define CYTHON_USE_DICT_VERSIONS 0
  #elif !defined(CYTHON_USE_DICT_VERSIONS)
    #define CYTHON_USE_DICT_VERSIONS  (PY_VERSION_HEX < 0x030C00A5)
  #endif
  #if PY_VERSION_HEX < 0x030700A3
    #undef CYTHON_USE_EXC_INFO_STACK
    #define CYTHON_USE_EXC_INFO_STACK 0
  #elif !defined(CYTHON_USE_EXC_INFO_STACK)
    #define CYTHON_USE_EXC_INFO_STACK 1
  #endif
  #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
    #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
  #endif
#endif
#if !defined(CYTHON_FAST_PYCCALL)
#define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
#endif
#if !defined(CYTHON_VECTORCALL)
#define CYTHON_VECTORCALL  (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
#endif
#define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_MAJOR_VERSION < 3
    #include "longintrepr.h"
  #endif
  #undef SHIFT
  #undef BASE
  #undef MASK
  #ifdef SIZEOF_VOID_P
    enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
  #endif
#endif
#ifndef __has_attribute
  #define __has_attribute(x) 0
#endif
#ifndef __has_cpp_attribute
  #define __has_cpp_attribute(x) 0
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifndef CYTHON_UNUSED
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(maybe_unused)
        #define CYTHON_UNUSED [[maybe_unused]]
      #endif
    #endif
  #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_UNUSED_VAR
#  if defined(__cplusplus)
     template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
#  else
#    define CYTHON_UNUSED_VAR(x) (void)(x)
#  endif
#endif
#ifndef CYTHON_MAYBE_UNUSED_VAR
  #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
#endif
#ifndef CYTHON_NCP_UNUSED
# if CYTHON_COMPILING_IN_CPYTHON
#  define CYTHON_NCP_UNUSED
# else
#  define CYTHON_NCP_UNUSED CYTHON_UNUSED
# endif
#endif
#ifndef CYTHON_USE_CPP_STD_MOVE
  #if defined(__cplusplus) && (\
    __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
    #define CYTHON_USE_CPP_STD_MOVE 1
  #else
    #define CYTHON_USE_CPP_STD_MOVE 0
  #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 short    uint16_t;
            typedef unsigned int      uint32_t;
        #else
            typedef unsigned __int8   uint8_t;
            typedef unsigned __int16  uint16_t;
            typedef unsigned __int32  uint32_t;
        #endif
    #endif
    #if _MSC_VER < 1300
        #ifdef _WIN64
            typedef unsigned long long  __pyx_uintptr_t;
        #else
            typedef unsigned int        __pyx_uintptr_t;
        #endif
    #else
        #ifdef _WIN64
            typedef unsigned __int64    __pyx_uintptr_t;
        #else
            typedef unsigned __int32    __pyx_uintptr_t;
        #endif
    #endif
#else
    #include <stdint.h>
    typedef uintptr_t  __pyx_uintptr_t;
#endif
#ifndef CYTHON_FALLTHROUGH
  #if defined(__cplusplus)
    /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
     * but leads to warnings with -pedantic, since it is a C++17 feature */
    #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
      #if __has_cpp_attribute(fallthrough)
        #define CYTHON_FALLTHROUGH [[fallthrough]]
      #endif
    #endif
    #ifndef CYTHON_FALLTHROUGH
      #if __has_cpp_attribute(clang::fallthrough)
        #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
      #elif __has_cpp_attribute(gnu::fallthrough)
        #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
      #endif
    #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
#ifdef __cplusplus
  template <typename T>
  struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
  #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
#else
  #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
#endif
#if CYTHON_COMPILING_IN_PYPY == 1
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
#else
  #define __PYX_NEED_TP_PRINT_SLOT  (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
#endif
#define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))

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

#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_DefaultClassType PyClass_Type
  #define __Pyx_PyCode_New(a, p, 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)
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_DefaultClassType PyType_Type
#if CYTHON_COMPILING_IN_LIMITED_API
    static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
        PyObject *exception_table = NULL;
        PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
        #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
        PyObject *version_info;
        PyObject *py_minor_version = NULL;
        #endif
        long minor_version = 0;
        PyObject *type, *value, *traceback;
        PyErr_Fetch(&type, &value, &traceback);
        #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
        minor_version = 11;
        #else
        if (!(version_info = PySys_GetObject("version_info"))) goto end;
        if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
        minor_version = PyLong_AsLong(py_minor_version);
        Py_DECREF(py_minor_version);
        if (minor_version == -1 && PyErr_Occurred()) goto end;
        #endif
        if (!(types_module = PyImport_ImportModule("types"))) goto end;
        if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
        if (minor_version <= 7) {
            (void)p;
            result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else if (minor_version <= 10) {
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, fline, lnos, fv, cell);
        } else {
            if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
            result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
                          c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
        }
    end:
        Py_XDECREF(code_type);
        Py_XDECREF(exception_table);
        Py_XDECREF(types_module);
        if (type) {
            PyErr_Restore(type, value, traceback);
        }
        return result;
    }
    #ifndef CO_OPTIMIZED
    #define CO_OPTIMIZED 0x0001
    #endif
    #ifndef CO_NEWLOCALS
    #define CO_NEWLOCALS 0x0002
    #endif
    #ifndef CO_VARARGS
    #define CO_VARARGS 0x0004
    #endif
    #ifndef CO_VARKEYWORDS
    #define CO_VARKEYWORDS 0x0008
    #endif
    #ifndef CO_ASYNC_GENERATOR
    #define CO_ASYNC_GENERATOR 0x0200
    #endif
    #ifndef CO_GENERATOR
    #define CO_GENERATOR 0x0020
    #endif
    #ifndef CO_COROUTINE
    #define CO_COROUTINE 0x0080
    #endif
#elif PY_VERSION_HEX >= 0x030B0000
  static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
                                                    PyObject *code, PyObject *c, PyObject* n, PyObject *v,
                                                    PyObject *fv, PyObject *cell, PyObject* fn,
                                                    PyObject *name, int fline, PyObject *lnos) {
    PyCodeObject *result;
    PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
    if (!empty_bytes) return NULL;
    result =
      #if PY_VERSION_HEX >= 0x030C0000
        PyUnstable_Code_NewWithPosOnlyArgs
      #else
        PyCode_NewWithPosOnlyArgs
      #endif
        (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
    Py_DECREF(empty_bytes);
    return result;
  }
#elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
          PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
#else
  #define __Pyx_PyCode_New(a, p, 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
#endif
#if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
  #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
#else
  #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
  #define __Pyx_Py_Is(x, y)  Py_Is(x, y)
#else
  #define __Pyx_Py_Is(x, y) ((x) == (y))
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
  #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
#else
  #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
  #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
#else
  #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
#endif
#if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
  #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
#else
  #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
#endif
#define __Pyx_NoneAsNull(obj)  (__Pyx_Py_IsNone(obj) ? NULL : (obj))
#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
#else
  #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
#endif
#ifndef CO_COROUTINE
  #define CO_COROUTINE 0x80
#endif
#ifndef CO_ASYNC_GENERATOR
  #define CO_ASYNC_GENERATOR 0x200
#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 Py_TPFLAGS_SEQUENCE
  #define Py_TPFLAGS_SEQUENCE 0
#endif
#ifndef Py_TPFLAGS_MAPPING
  #define Py_TPFLAGS_MAPPING 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_METH_FASTCALL
  #define __Pyx_METH_FASTCALL METH_FASTCALL
  #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
  #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
#else
  #define __Pyx_METH_FASTCALL METH_VARARGS
  #define __Pyx_PyCFunction_FastCall PyCFunction
  #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
#endif
#if CYTHON_VECTORCALL
  #define __pyx_vectorcallfunc vectorcallfunc
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  PY_VECTORCALL_ARGUMENTS_OFFSET
  #define __Pyx_PyVectorcall_NARGS(n)  PyVectorcall_NARGS((size_t)(n))
#elif CYTHON_BACKPORT_VECTORCALL
  typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
                                            size_t nargsf, PyObject *kwnames);
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  ((size_t)1 << (8 * sizeof(size_t) - 1))
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
#else
  #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET  0
  #define __Pyx_PyVectorcall_NARGS(n)  ((Py_ssize_t)(n))
#endif
#if PY_MAJOR_VERSION >= 0x030900B1
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_CheckExact(func)
#else
#define __Pyx_PyCFunction_CheckExact(func)  PyCFunction_Check(func)
#endif
#define __Pyx_CyOrPyCFunction_Check(func)  PyCFunction_Check(func)
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  (((PyCFunctionObject*)(func))->m_ml->ml_meth)
#elif !CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyOrPyCFunction_GET_FUNCTION(func)  PyCFunction_GET_FUNCTION(func)
#endif
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_CyOrPyCFunction_GET_FLAGS(func)  (((PyCFunctionObject*)(func))->m_ml->ml_flags)
static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
    return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
}
#endif
static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
#if CYTHON_COMPILING_IN_LIMITED_API
    return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
#else
    return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
#endif
}
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCFunction(func, cfunc)
#if __PYX_LIMITED_VERSION_HEX < 0x030900B1
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  ((void)m, PyType_FromSpecWithBases(s, b))
  typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
#else
  #define __Pyx_PyType_FromModuleAndSpec(m, s, b)  PyType_FromModuleAndSpec(m, s, b)
  #define __Pyx_PyCMethod  PyCMethod
#endif
#ifndef METH_METHOD
  #define METH_METHOD 0x200
#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_LIMITED_API
  #define __Pyx_PyCode_HasFreeVars(co)  (PyCode_GetNumFree(co) > 0)
  #define __Pyx_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_COMPILING_IN_LIMITED_API
  #define __Pyx_PyThreadState_Current PyThreadState_Get()
#elif !CYTHON_FAST_THREAD_STATE
  #define __Pyx_PyThreadState_Current PyThreadState_GET()
#elif PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
#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 CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
{
    void *result;
    result = PyModule_GetState(op);
    if (!result)
        Py_FatalError("Couldn't find the module state");
    return result;
}
#endif
#define __Pyx_PyObject_GetSlot(obj, name, func_ctype)  __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((func_ctype) PyType_GetSlot((type), Py_##name))
#else
  #define __Pyx_PyType_GetSlot(type, name, func_ctype)  ((type)->name)
#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 PY_MAJOR_VERSION < 3
    #if CYTHON_COMPILING_IN_PYPY
        #if PYPY_VERSION_NUM < 0x07030600
            #if defined(__cplusplus) && __cplusplus >= 201402L
                [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
            #elif defined(__GNUC__) || defined(__clang__)
                __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
            #elif defined(_MSC_VER)
                __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
            #endif
            static CYTHON_INLINE int PyGILState_Check(void) {
                return 0;
            }
        #else  // PYPY_VERSION_NUM < 0x07030600
        #endif  // PYPY_VERSION_NUM < 0x07030600
    #else
        static CYTHON_INLINE int PyGILState_Check(void) {
            PyThreadState * tstate = _PyThreadState_Current;
            return tstate && (tstate == PyGILState_GetThisThreadState());
        }
    #endif
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || 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 > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
#define __Pyx_PyDict_GetItemStrWithError(dict, name)  _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
    PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
    if (res == NULL) PyErr_Clear();
    return res;
}
#elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
#define __Pyx_PyDict_GetItemStrWithError  PyDict_GetItemWithError
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#else
static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
#if CYTHON_COMPILING_IN_PYPY
    return PyDict_GetItem(dict, name);
#else
    PyDictEntry *ep;
    PyDictObject *mp = (PyDictObject*) dict;
    long hash = ((PyStringObject *) name)->ob_shash;
    assert(hash != -1);
    ep = (mp->ma_lookup)(mp, name, hash);
    if (ep == NULL) {
        return NULL;
    }
    return ep->me_value;
#endif
}
#define __Pyx_PyDict_GetItemStr           PyDict_GetItem
#endif
#if CYTHON_USE_TYPE_SLOTS
  #define __Pyx_PyType_GetFlags(tp)   (((PyTypeObject *)tp)->tp_flags)
  #define __Pyx_PyType_HasFeature(type, feature)  ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  (Py_TYPE(obj)->tp_iternext)
#else
  #define __Pyx_PyType_GetFlags(tp)   (PyType_GetFlags((PyTypeObject *)tp))
  #define __Pyx_PyType_HasFeature(type, feature)  PyType_HasFeature(type, feature)
  #define __Pyx_PyObject_GetIterNextFunc(obj)  PyIter_Next
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
#else
  #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
#endif
#if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  {\
    PyTypeObject *type = Py_TYPE((PyObject*)obj);\
    assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
    PyObject_GC_Del(obj);\
    Py_DECREF(type);\
}
#else
#define __Pyx_PyHeapTypeObject_GC_Del(obj)  PyObject_GC_Del(obj)
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GetLength(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((void)u, 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((void)u, (0))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)u)
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
  #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GetLength(u))
#elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_READY(op)       (0)
  #else
    #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ?\
                                                0 : _PyUnicode_Ready((PyObject *)(op)))
  #endif
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   PyUnicode_MAX_CHAR_VALUE(u)
  #define __Pyx_PyUnicode_KIND(u)         ((int)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, (Py_UCS4) ch)
  #if PY_VERSION_HEX >= 0x030C0000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != PyUnicode_GET_LENGTH(u))
  #else
    #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
    #else
    #define __Pyx_PyUnicode_IS_TRUE(u)      (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
    #endif
  #endif
#else
  #define CYTHON_PEP393_ENABLED 0
  #define PyUnicode_1BYTE_KIND  1
  #define PyUnicode_2BYTE_KIND  2
  #define PyUnicode_4BYTE_KIND  4
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u)   ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
  #define __Pyx_PyUnicode_KIND(u)         ((int)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] = (Py_UNICODE) 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
  #if !defined(PyUnicode_DecodeUnicodeEscape)
    #define PyUnicode_DecodeUnicodeEscape(s, size, errors)  PyUnicode_Decode(s, size, "unicode_escape", errors)
  #endif
  #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
    #undef PyUnicode_Contains
    #define PyUnicode_Contains(u, s)  PySequence_Contains(u, s)
  #endif
  #if !defined(PyByteArray_Check)
    #define PyByteArray_Check(obj)  PyObject_TypeCheck(obj, &PyByteArray_Type)
  #endif
  #if !defined(PyObject_Format)
    #define PyObject_Format(obj, fmt)  PyObject_CallMethod(obj, "__format__", "O", fmt)
  #endif
#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
#if CYTHON_COMPILING_IN_CPYTHON
  #define __Pyx_PySequence_ListKeepNew(obj)\
    (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
#else
  #define __Pyx_PySequence_ListKeepNew(obj)  PySequence_List(obj)
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        __Pyx_IS_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_ITEM(o, i) PySequence_ITEM(o, i)
  #define __Pyx_PySequence_SIZE(seq)  Py_SIZE(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
#else
  #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
  #define __Pyx_PySequence_SIZE(seq)  PySequence_Size(seq)
  #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
  #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
  #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
  #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
  #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
  #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
  #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
#endif
#if PY_VERSION_HEX >= 0x030d00A1
  #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
#else
  static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
      PyObject *module = PyImport_AddModule(name);
      Py_XINCREF(module);
      return module;
  }
#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 __Pyx_Py3Int_Check(op)       PyLong_Check(op)
  #define __Pyx_Py3Int_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
#else
  #define __Pyx_Py3Int_Check(op)       (PyLong_Check(op) || PyInt_Check(op))
  #define __Pyx_Py3Int_CheckExact(op)  (PyLong_CheckExact(op) || PyInt_CheckExact(op))
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
#endif
#if CYTHON_USE_ASYNC_SLOTS
  #if PY_VERSION_HEX >= 0x030500B1
    #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
    #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
  #else
    #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
  #endif
#else
  #define __Pyx_PyType_AsAsync(obj) NULL
#endif
#ifndef __Pyx_PyAsyncMethodsStruct
    typedef struct {
        unaryfunc am_await;
        unaryfunc am_aiter;
        unaryfunc am_anext;
    } __Pyx_PyAsyncMethodsStruct;
#endif

#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
  #if !defined(_USE_MATH_DEFINES)
    #define _USE_MATH_DEFINES
  #endif
#endif
#include <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; }

#ifdef CYTHON_EXTERN_C
    #undef __PYX_EXTERN_C
    #define __PYX_EXTERN_C CYTHON_EXTERN_C
#elif defined(__PYX_EXTERN_C)
    #ifdef _MSC_VER
    #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
    #else
    #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
    #endif
#else
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#define __PYX_HAVE__pysndlib__generators
#define __PYX_HAVE_API__pysndlib__generators
/* Early includes */
#include <string.h>
#include <stdio.h>

    /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
    
#include "numpy/arrayobject.h"
#include "numpy/ndarrayobject.h"
#include "numpy/ndarraytypes.h"
#include "numpy/arrayscalars.h"
#include "numpy/ufuncobject.h"
#include "sndlib.h"
#include "clm.h"

    typedef mus_float_t (*connect_points_cb)(mus_float_t val);
    typedef mus_float_t (*input_cb)(void *arg, int direction);
    typedef int (*edit_cb)(void *closure);
    typedef bool (*analyze_cb)(void *arg, mus_float_t (*input)(void *arg1, int direction));
	typedef mus_float_t (*synthesize_cb)(void *arg);
	typedef void (*detour_cb)(mus_any *ptr, mus_long_t val);

    typedef mus_any* mus_any_ptr;
    typedef mus_any** mus_any_ptr_ptr;
    
#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 Py_ssize_t __Pyx_ssize_strlen(const char *s);
static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
#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_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableSString(s)    ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsWritableUString(s)    ((unsigned char*)(__pyx_uintptr_t) __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)
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const wchar_t *u)
{
    const wchar_t *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#else
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);
}
#endif
#define __Pyx_PyUnicode_FromOrdinal(o)       PyUnicode_FromOrdinal((int)o)
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
#define __Pyx_PySequence_Tuple(obj)\
    (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
#if CYTHON_ASSUME_SAFE_MACROS
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION >= 3
#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
#else
#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
#endif
#if CYTHON_USE_PYLONG_INTERNALS
  #if PY_VERSION_HEX >= 0x030C00A7
  #ifndef _PyLong_SIGN_MASK
    #define _PyLong_SIGN_MASK 3
  #endif
  #ifndef _PyLong_NON_SIZE_BITS
    #define _PyLong_NON_SIZE_BITS 3
  #endif
  #define __Pyx_PyLong_Sign(x)  (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
  #define __Pyx_PyLong_IsNeg(x)  ((__Pyx_PyLong_Sign(x) & 2) != 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (!__Pyx_PyLong_IsNeg(x))
  #define __Pyx_PyLong_IsZero(x)  (__Pyx_PyLong_Sign(x) & 1)
  #define __Pyx_PyLong_IsPos(x)  (__Pyx_PyLong_Sign(x) == 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  (__Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
  #define __Pyx_PyLong_SignedDigitCount(x)\
        ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
  #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
    #define __Pyx_PyLong_IsCompact(x)     PyUnstable_Long_IsCompact((PyLongObject*) x)
    #define __Pyx_PyLong_CompactValue(x)  PyUnstable_Long_CompactValue((PyLongObject*) x)
  #else
    #define __Pyx_PyLong_IsCompact(x)     (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
    #define __Pyx_PyLong_CompactValue(x)  ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
  #endif
  typedef Py_ssize_t  __Pyx_compact_pylong;
  typedef size_t  __Pyx_compact_upylong;
  #else
  #define __Pyx_PyLong_IsNeg(x)  (Py_SIZE(x) < 0)
  #define __Pyx_PyLong_IsNonNeg(x)  (Py_SIZE(x) >= 0)
  #define __Pyx_PyLong_IsZero(x)  (Py_SIZE(x) == 0)
  #define __Pyx_PyLong_IsPos(x)  (Py_SIZE(x) > 0)
  #define __Pyx_PyLong_CompactValueUnsigned(x)  ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
  #define __Pyx_PyLong_DigitCount(x)  __Pyx_sst_abs(Py_SIZE(x))
  #define __Pyx_PyLong_SignedDigitCount(x)  Py_SIZE(x)
  #define __Pyx_PyLong_IsCompact(x)  (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
  #define __Pyx_PyLong_CompactValue(x)\
        ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
  typedef sdigit  __Pyx_compact_pylong;
  typedef digit  __Pyx_compact_upylong;
  #endif
  #if PY_VERSION_HEX >= 0x030C00A5
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->long_value.ob_digit)
  #else
  #define __Pyx_PyLong_Digits(x)  (((PyLongObject*)x)->ob_digit)
  #endif
#endif
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
#include <string.h>
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] = (char) 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
#include <string.h>
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; }

#if !CYTHON_USE_MODULE_STATE
static PyObject *__pyx_m = NULL;
#endif
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) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
    #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

/* #### Code section: filename_table ### */

static const char *__pyx_f[] = {
  "src/pysndlib/generators.pyx",
  "<stringsource>",
  "__init__.cython-30.pxd",
  "src/pysndlib/generators.pxd",
  "type.pxd",
  "src/pysndlib/clm.pxd",
};
/* #### Code section: utility_code_proto_before_types ### */
/* ForceInitThreads.proto */
#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

/* #### Code section: numeric_typedefs ### */

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":730
 * # 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":731
 * 
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":732
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":733
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":737
 * #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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":738
 * 
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":739
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":740
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":744
 * #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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":745
 * 
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":754
 * # 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   longlong_t
 * 
 */
typedef npy_long __pyx_t_5numpy_int_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":755
 * # numpy.int corresponds to 'l' and numpy.long to 'q'
 * ctypedef npy_long       int_t
 * ctypedef npy_longlong   longlong_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_ulong      uint_t
 */
typedef npy_longlong __pyx_t_5numpy_longlong_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":757
 * ctypedef npy_longlong   longlong_t
 * 
 * ctypedef npy_ulong      uint_t             # <<<<<<<<<<<<<<
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 */
typedef npy_ulong __pyx_t_5numpy_uint_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":758
 * 
 * ctypedef npy_ulong      uint_t
 * ctypedef npy_ulonglong  ulonglong_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_intp       intp_t
 */
typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":760
 * ctypedef npy_ulonglong  ulonglong_t
 * 
 * ctypedef npy_intp       intp_t             # <<<<<<<<<<<<<<
 * ctypedef npy_uintp      uintp_t
 * 
 */
typedef npy_intp __pyx_t_5numpy_intp_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":761
 * 
 * ctypedef npy_intp       intp_t
 * ctypedef npy_uintp      uintp_t             # <<<<<<<<<<<<<<
 * 
 * ctypedef npy_double     float_t
 */
typedef npy_uintp __pyx_t_5numpy_uintp_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":763
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":764
 * 
 * ctypedef npy_double     float_t
 * ctypedef npy_double     double_t             # <<<<<<<<<<<<<<
 * ctypedef npy_longdouble longdouble_t
 * 
 */
typedef npy_double __pyx_t_5numpy_double_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":765
 * 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;
/* #### Code section: complex_type_declarations ### */
/* Declarations.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #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 && (1) && (!0 || __cplusplus)
  #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);

/* #### Code section: type_declarations ### */

/*--- Type declarations ---*/
struct __pyx_obj_8pysndlib_3clm_mus_any;
struct __pyx_obj_8pysndlib_10generators_CLMGenerator;
struct __pyx_obj_8pysndlib_10generators_Nssb;
struct __pyx_obj_8pysndlib_10generators_Nxysin;
struct __pyx_obj_8pysndlib_10generators_Nxycos;
struct __pyx_obj_8pysndlib_10generators_Nxy1cos;
struct __pyx_obj_8pysndlib_10generators_Nxy1sin;
struct __pyx_obj_8pysndlib_10generators_Noddcos;
struct __pyx_obj_8pysndlib_10generators_Noddssb;
struct __pyx_obj_8pysndlib_10generators_Ncos2;
struct __pyx_obj_8pysndlib_10generators_Ncos4;
struct __pyx_obj_8pysndlib_10generators_Npcos;
struct __pyx_obj_8pysndlib_10generators_Ncos5;
struct __pyx_obj_8pysndlib_10generators_Nsin5;
struct __pyx_obj_8pysndlib_10generators_Nrcos;
struct __pyx_obj_8pysndlib_10generators_Nrssb;
struct __pyx_obj_8pysndlib_10generators_Nkssb;
struct __pyx_obj_8pysndlib_10generators_Nsincos;
struct __pyx_obj_8pysndlib_10generators_N1cos;
struct __pyx_obj_8pysndlib_10generators_Npos1cos;
struct __pyx_obj_8pysndlib_10generators_Npos3cos;
struct __pyx_obj_8pysndlib_10generators_Rcos;
struct __pyx_obj_8pysndlib_10generators_Rssb;
struct __pyx_obj_8pysndlib_10generators_Rxysin;
struct __pyx_obj_8pysndlib_10generators_Rxycos;
struct __pyx_obj_8pysndlib_10generators_SafeRxycos;
struct __pyx_obj_8pysndlib_10generators_Ercos;
struct __pyx_obj_8pysndlib_10generators_Erssb;
struct __pyx_obj_8pysndlib_10generators_R2cos;
struct __pyx_obj_8pysndlib_10generators_R2ssb;
struct __pyx_obj_8pysndlib_10generators_Eoddcos;
struct __pyx_obj_8pysndlib_10generators_Rkcos;
struct __pyx_obj_8pysndlib_10generators_Rksin;
struct __pyx_obj_8pysndlib_10generators_Rkssb;
struct __pyx_obj_8pysndlib_10generators_Rkfcos;
struct __pyx_obj_8pysndlib_10generators_Rkfssb;
struct __pyx_obj_8pysndlib_10generators_R2kfcos;
struct __pyx_obj_8pysndlib_10generators_K2sin;
struct __pyx_obj_8pysndlib_10generators_K2cos;
struct __pyx_obj_8pysndlib_10generators_K2ssb;
struct __pyx_obj_8pysndlib_10generators_Dblsum;
struct __pyx_obj_8pysndlib_10generators_Rkoddssb;
struct __pyx_obj_8pysndlib_10generators_Krksin;
struct __pyx_obj_8pysndlib_10generators_Absin;
struct __pyx_obj_8pysndlib_10generators_Abcos;
struct __pyx_obj_8pysndlib_10generators_R2k2cos;
struct __pyx_obj_8pysndlib_10generators_Blsaw;
struct __pyx_obj_8pysndlib_10generators_Asyfm;
struct __pyx_obj_8pysndlib_10generators_Bess;
struct __pyx_obj_8pysndlib_10generators_Jjcos;
struct __pyx_obj_8pysndlib_10generators_J0evencos;
struct __pyx_obj_8pysndlib_10generators_J2cos;
struct __pyx_obj_8pysndlib_10generators_Jpcos;
struct __pyx_obj_8pysndlib_10generators_Jncos;
struct __pyx_obj_8pysndlib_10generators_J0j1cos;
struct __pyx_obj_8pysndlib_10generators_Jycos;
struct __pyx_obj_8pysndlib_10generators_Jcos;
struct __pyx_obj_8pysndlib_10generators_Blackman;
struct __pyx_obj_8pysndlib_10generators_Fmssb;
struct __pyx_obj_8pysndlib_10generators_K3sin;
struct __pyx_obj_8pysndlib_10generators_Izcos;
struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave;
struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave;
struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave;
struct __pyx_obj_8pysndlib_10generators_AdjustableOscil;
struct __pyx_obj_8pysndlib_10generators_RoundInterp;
struct __pyx_obj_8pysndlib_10generators_Nchoosekcos;
struct __pyx_obj_8pysndlib_10generators_SincTrain;
struct __pyx_obj_8pysndlib_10generators_PinkNoise;
struct __pyx_obj_8pysndlib_10generators_BrownNoise;
struct __pyx_obj_8pysndlib_10generators_GreenNoise;
struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp;
struct __pyx_obj_8pysndlib_10generators_MovingSum;
struct __pyx_obj_8pysndlib_10generators_MovingVariance;
struct __pyx_obj_8pysndlib_10generators_MovingRMS;
struct __pyx_obj_8pysndlib_10generators_MovingLength;
struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage;
struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
struct __pyx_obj_8pysndlib_10generators_Tanhsin;
struct __pyx_obj_8pysndlib_10generators_Noddsin;
struct __pyx_obj_8pysndlib_10generators_MovingFFT;
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max;
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max;
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max;
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env;
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":767
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":768
 * 
 * ctypedef npy_cfloat      cfloat_t
 * ctypedef npy_cdouble     cdouble_t             # <<<<<<<<<<<<<<
 * ctypedef npy_clongdouble clongdouble_t
 * 
 */
typedef npy_cdouble __pyx_t_5numpy_cdouble_t;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":769
 * 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;

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":771
 * ctypedef npy_clongdouble clongdouble_t
 * 
 * ctypedef npy_cdouble     complex_t             # <<<<<<<<<<<<<<
 * 
 * cdef inline object PyArray_MultiIterNew1(a):
 */
typedef npy_cdouble __pyx_t_5numpy_complex_t;

/* "pysndlib/sndlib.pxd":11
 * csndlib.mus_sound_initialize()
 * 
 * cpdef enum Header:             # <<<<<<<<<<<<<<
 *     """
 *     file types for audio files
 */
enum __pyx_t_8pysndlib_6sndlib_Header {
  __pyx_e_8pysndlib_6sndlib_UNKNOWN_HEADER,
  __pyx_e_8pysndlib_6sndlib_NEXT,
  __pyx_e_8pysndlib_6sndlib_AIFC,
  __pyx_e_8pysndlib_6sndlib_RIFF,
  __pyx_e_8pysndlib_6sndlib_RF64,
  __pyx_e_8pysndlib_6sndlib_BICSF,
  __pyx_e_8pysndlib_6sndlib_NIST,
  __pyx_e_8pysndlib_6sndlib_INRS,
  __pyx_e_8pysndlib_6sndlib_ESPS,
  __pyx_e_8pysndlib_6sndlib_SVX,
  __pyx_e_8pysndlib_6sndlib_VOC,
  __pyx_e_8pysndlib_6sndlib_SNDT,
  __pyx_e_8pysndlib_6sndlib_RAW,
  __pyx_e_8pysndlib_6sndlib_SMP,
  __pyx_e_8pysndlib_6sndlib_AVR,
  __pyx_e_8pysndlib_6sndlib_IRCAM,
  __pyx_e_8pysndlib_6sndlib_SD1,
  __pyx_e_8pysndlib_6sndlib_SPPACK,
  __pyx_e_8pysndlib_6sndlib_MUS10,
  __pyx_e_8pysndlib_6sndlib_HCOM,
  __pyx_e_8pysndlib_6sndlib_PSION,
  __pyx_e_8pysndlib_6sndlib_MAUD,
  __pyx_e_8pysndlib_6sndlib_IEEE,
  __pyx_e_8pysndlib_6sndlib_MATLAB,
  __pyx_e_8pysndlib_6sndlib_ADC,
  __pyx_e_8pysndlib_6sndlib_MIDI,
  __pyx_e_8pysndlib_6sndlib_SOUNDFONT,
  __pyx_e_8pysndlib_6sndlib_GRAVIS,
  __pyx_e_8pysndlib_6sndlib_COMDISCO,
  __pyx_e_8pysndlib_6sndlib_GOLDWAVE,
  __pyx_e_8pysndlib_6sndlib_SRFS,
  __pyx_e_8pysndlib_6sndlib_MIDI_SAMPLE_DUMP,
  __pyx_e_8pysndlib_6sndlib_DIAMONDWARE,
  __pyx_e_8pysndlib_6sndlib_ADF,
  __pyx_e_8pysndlib_6sndlib_SBSTUDIOII,
  __pyx_e_8pysndlib_6sndlib_DELUSION,
  __pyx_e_8pysndlib_6sndlib_FARANDOLE,
  __pyx_e_8pysndlib_6sndlib_SAMPLE_DUMP,
  __pyx_e_8pysndlib_6sndlib_ULTRATRACKER,
  __pyx_e_8pysndlib_6sndlib_YAMAHA_SY85,
  __pyx_e_8pysndlib_6sndlib_YAMAHA_TX16W,
  __pyx_e_8pysndlib_6sndlib_DIGIPLAYER,
  __pyx_e_8pysndlib_6sndlib_COVOX,
  __pyx_e_8pysndlib_6sndlib_AVI,
  __pyx_e_8pysndlib_6sndlib_OMF,
  __pyx_e_8pysndlib_6sndlib_QUICKTIME,
  __pyx_e_8pysndlib_6sndlib_ASF,
  __pyx_e_8pysndlib_6sndlib_YAMAHA_SY99,
  __pyx_e_8pysndlib_6sndlib_KURZWEIL_2000,
  __pyx_e_8pysndlib_6sndlib_AIFF,
  __pyx_e_8pysndlib_6sndlib_PAF,
  __pyx_e_8pysndlib_6sndlib_CSL,
  __pyx_e_8pysndlib_6sndlib_FILE_SAMP,
  __pyx_e_8pysndlib_6sndlib_PVF,
  __pyx_e_8pysndlib_6sndlib_SOUNDFORGE,
  __pyx_e_8pysndlib_6sndlib_TWINVQ,
  __pyx_e_8pysndlib_6sndlib_AKAI4,
  __pyx_e_8pysndlib_6sndlib_IMPULSETRACKER,
  __pyx_e_8pysndlib_6sndlib_KORG,
  __pyx_e_8pysndlib_6sndlib_NVF,
  __pyx_e_8pysndlib_6sndlib_CAFF,
  __pyx_e_8pysndlib_6sndlib_MAUI,
  __pyx_e_8pysndlib_6sndlib_SDIF,
  __pyx_e_8pysndlib_6sndlib_OGG,
  __pyx_e_8pysndlib_6sndlib_FLAC,
  __pyx_e_8pysndlib_6sndlib_SPEEX,
  __pyx_e_8pysndlib_6sndlib_MPEG,
  __pyx_e_8pysndlib_6sndlib_SHORTEN,
  __pyx_e_8pysndlib_6sndlib_TTA,
  __pyx_e_8pysndlib_6sndlib_WAVPACK,
  __pyx_e_8pysndlib_6sndlib_SOX,
  __pyx_e_8pysndlib_6sndlib_NUM_HEADERS
};

/* "pysndlib/sndlib.pxd":17
 *     UNKNOWN_HEADER, NEXT, AIFC, RIFF, RF64, BICSF, NIST, INRS, ESPS, SVX, VOC, SNDT, RAW, SMP, AVR, IRCAM, SD1, SPPACK, MUS10, HCOM, PSION, MAUD, IEEE, MATLAB, ADC, MIDI, SOUNDFONT, GRAVIS, COMDISCO, GOLDWAVE, SRFS, MIDI_SAMPLE_DUMP, DIAMONDWARE, ADF, SBSTUDIOII, DELUSION, FARANDOLE, SAMPLE_DUMP, ULTRATRACKER, YAMAHA_SY85, YAMAHA_TX16W, DIGIPLAYER, COVOX, AVI, OMF, QUICKTIME, ASF, YAMAHA_SY99, KURZWEIL_2000, AIFF, PAF, CSL, FILE_SAMP, PVF, SOUNDFORGE, TWINVQ, AKAI4, IMPULSETRACKER, KORG, NVF, CAFF, MAUI, SDIF, OGG, FLAC, SPEEX, MPEG, SHORTEN, TTA, WAVPACK, SOX, NUM_HEADERS,
 * 
 * cpdef enum Sample:             # <<<<<<<<<<<<<<
 *     """
 *     numerical sample types
 */
enum __pyx_t_8pysndlib_6sndlib_Sample {
  __pyx_e_8pysndlib_6sndlib_UNKNOWN_SAMPLE,
  __pyx_e_8pysndlib_6sndlib_BSHORT,
  __pyx_e_8pysndlib_6sndlib_MULAW,
  __pyx_e_8pysndlib_6sndlib_BYTE,
  __pyx_e_8pysndlib_6sndlib_BFLOAT,
  __pyx_e_8pysndlib_6sndlib_BINT,
  __pyx_e_8pysndlib_6sndlib_ALAW,
  __pyx_e_8pysndlib_6sndlib_UBYTE,
  __pyx_e_8pysndlib_6sndlib_B24INT,
  __pyx_e_8pysndlib_6sndlib_BDOUBLE,
  __pyx_e_8pysndlib_6sndlib_LSHORT,
  __pyx_e_8pysndlib_6sndlib_LINT,
  __pyx_e_8pysndlib_6sndlib_LFLOAT,
  __pyx_e_8pysndlib_6sndlib_LDOUBLE,
  __pyx_e_8pysndlib_6sndlib_UBSHORT,
  __pyx_e_8pysndlib_6sndlib_ULSHORT,
  __pyx_e_8pysndlib_6sndlib_L24INT,
  __pyx_e_8pysndlib_6sndlib_BINTN,
  __pyx_e_8pysndlib_6sndlib_LINTN,
  __pyx_e_8pysndlib_6sndlib_BFLOAT_UNSCALED,
  __pyx_e_8pysndlib_6sndlib_LFLOAT_UNSCALED,
  __pyx_e_8pysndlib_6sndlib_BDOUBLE_UNSCALED,
  __pyx_e_8pysndlib_6sndlib_LDOUBLE_UNSCALED,
  __pyx_e_8pysndlib_6sndlib_NUM_SAMPLES
};

/* "pysndlib/sndlib.pxd":23
 *     UNKNOWN_SAMPLE, BSHORT, MULAW, BYTE, BFLOAT, BINT, ALAW, UBYTE, B24INT, BDOUBLE, LSHORT, LINT, LFLOAT, LDOUBLE, UBSHORT, ULSHORT, L24INT, BINTN, LINTN, BFLOAT_UNSCALED, LFLOAT_UNSCALED, BDOUBLE_UNSCALED, LDOUBLE_UNSCALED, NUM_SAMPLES,
 * 
 * cpdef enum Error:             # <<<<<<<<<<<<<<
 *     """
 *     sndlib and clm errors
 */
enum __pyx_t_8pysndlib_6sndlib_Error {
  __pyx_e_8pysndlib_6sndlib_NO_ERROR,
  __pyx_e_8pysndlib_6sndlib_NO_FREQUENCY,
  __pyx_e_8pysndlib_6sndlib_NO_PHASE,
  __pyx_e_8pysndlib_6sndlib_NO_GEN,
  __pyx_e_8pysndlib_6sndlib_NO_LENGTH,
  __pyx_e_8pysndlib_6sndlib_NO_DESCRIBE,
  __pyx_e_8pysndlib_6sndlib_NO_DATA,
  __pyx_e_8pysndlib_6sndlib_NO_SCALER,
  __pyx_e_8pysndlib_6sndlib_MEMORY_ALLOCATION_FAILED,
  __pyx_e_8pysndlib_6sndlib_CANT_OPEN_FILE,
  __pyx_e_8pysndlib_6sndlib_NO_SAMPLE_INPUT,
  __pyx_e_8pysndlib_6sndlib_NO_SAMPLE_OUTPUT,
  __pyx_e_8pysndlib_6sndlib_NO_SUCH_CHANNEL,
  __pyx_e_8pysndlib_6sndlib_NO_FILE_NAME_PROVIDED,
  __pyx_e_8pysndlib_6sndlib_NO_LOCATION,
  __pyx_e_8pysndlib_6sndlib_NO_CHANNEL,
  __pyx_e_8pysndlib_6sndlib_NO_SUCH_FFT_WINDOW,
  __pyx_e_8pysndlib_6sndlib_UNSUPPORTED_SAMPLE_TYPE,
  __pyx_e_8pysndlib_6sndlib_HEADER_READ_FAILED,
  __pyx_e_8pysndlib_6sndlib_UNSUPPORTED_HEADER_TYPE,
  __pyx_e_8pysndlib_6sndlib_FILE_DESCRIPTORS_NOT_INITIALIZED,
  __pyx_e_8pysndlib_6sndlib_NOT_A_SOUND_FILE,
  __pyx_e_8pysndlib_6sndlib_FILE_CLOSED,
  __pyx_e_8pysndlib_6sndlib_WRITE_ERROR,
  __pyx_e_8pysndlib_6sndlib_HEADER_WRITE_FAILED,
  __pyx_e_8pysndlib_6sndlib_CANT_OPEN_TEMP_FILE,
  __pyx_e_8pysndlib_6sndlib_INTERRUPTED,
  __pyx_e_8pysndlib_6sndlib_BAD_ENVELOPE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CHANNELS_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_SRATE_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_SAMPLE_TYPE_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_NO_INPUT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CONFIGURATION_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_WRITE_ERROR,
  __pyx_e_8pysndlib_6sndlib_AUDIO_SIZE_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_DEVICE_NOT_AVAILABLE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CANT_CLOSE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CANT_OPEN,
  __pyx_e_8pysndlib_6sndlib_AUDIO_READ_ERROR,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CANT_WRITE,
  __pyx_e_8pysndlib_6sndlib_AUDIO_CANT_READ,
  __pyx_e_8pysndlib_6sndlib_AUDIO_NO_READ_PERMISSION,
  __pyx_e_8pysndlib_6sndlib_CANT_CLOSE_FILE,
  __pyx_e_8pysndlib_6sndlib_ARG_OUT_OF_RANGE,
  __pyx_e_8pysndlib_6sndlib_NO_CHANNELS,
  __pyx_e_8pysndlib_6sndlib_NO_HOP,
  __pyx_e_8pysndlib_6sndlib_NO_WIDTH,
  __pyx_e_8pysndlib_6sndlib_NO_FILE_NAME,
  __pyx_e_8pysndlib_6sndlib_NO_RAMP,
  __pyx_e_8pysndlib_6sndlib_NO_RUN,
  __pyx_e_8pysndlib_6sndlib_NO_INCREMENT,
  __pyx_e_8pysndlib_6sndlib_NO_OFFSET,
  __pyx_e_8pysndlib_6sndlib_NO_XCOEFF,
  __pyx_e_8pysndlib_6sndlib_NO_YCOEFF,
  __pyx_e_8pysndlib_6sndlib_NO_XCOEFFS,
  __pyx_e_8pysndlib_6sndlib_NO_YCOEFFS,
  __pyx_e_8pysndlib_6sndlib_NO_RESET,
  __pyx_e_8pysndlib_6sndlib_BAD_SIZE,
  __pyx_e_8pysndlib_6sndlib_CANT_CONVERT,
  __pyx_e_8pysndlib_6sndlib_READ_ERROR,
  __pyx_e_8pysndlib_6sndlib_NO_FEEDFORWARD,
  __pyx_e_8pysndlib_6sndlib_NO_FEEDBACK,
  __pyx_e_8pysndlib_6sndlib_NO_INTERP_TYPE,
  __pyx_e_8pysndlib_6sndlib_NO_POSITION,
  __pyx_e_8pysndlib_6sndlib_NO_ORDER,
  __pyx_e_8pysndlib_6sndlib_NO_COPY,
  __pyx_e_8pysndlib_6sndlib_CANT_TRANSLATE,
  __pyx_e_8pysndlib_6sndlib_NUM_ERRORS
};
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_from_ptr;
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_set_up_data;
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_next;
struct __pyx_opt_args_8pysndlib_3clm_get_srate;
struct __pyx_opt_args_8pysndlib_3clm_random;
struct __pyx_opt_args_8pysndlib_3clm_contrast_enhancement;
struct __pyx_opt_args_8pysndlib_3clm_mus_interpolate;
struct __pyx_opt_args_8pysndlib_3clm_make_fft_window;
struct __pyx_opt_args_8pysndlib_3clm_file2ndarray;
struct __pyx_opt_args_8pysndlib_3clm_ndarray2file;
struct __pyx_opt_args_8pysndlib_3clm_mus_spectrum;
struct __pyx_opt_args_8pysndlib_3clm_spectrum;
struct __pyx_opt_args_8pysndlib_3clm_convolution;
struct __pyx_opt_args_8pysndlib_3clm_mus_convolution;
struct __pyx_opt_args_8pysndlib_3clm_partials2wave;
struct __pyx_opt_args_8pysndlib_3clm_phase_partials2wave;
struct __pyx_opt_args_8pysndlib_3clm_partials2polynomial;
struct __pyx_opt_args_8pysndlib_3clm_oscil;
struct __pyx_opt_args_8pysndlib_3clm_pulsed_env;
struct __pyx_opt_args_8pysndlib_3clm_table_lookup;
struct __pyx_opt_args_8pysndlib_3clm_make_table_lookup_with_env;
struct __pyx_opt_args_8pysndlib_3clm_polywave;
struct __pyx_opt_args_8pysndlib_3clm_polyshape;
struct __pyx_opt_args_8pysndlib_3clm_polyshape_unmodulated;
struct __pyx_opt_args_8pysndlib_3clm_triangle_wave;
struct __pyx_opt_args_8pysndlib_3clm_square_wave;
struct __pyx_opt_args_8pysndlib_3clm_make_sawtooth_wave;
struct __pyx_opt_args_8pysndlib_3clm_sawtooth_wave;
struct __pyx_opt_args_8pysndlib_3clm_pulse_train;
struct __pyx_opt_args_8pysndlib_3clm_ncos;
struct __pyx_opt_args_8pysndlib_3clm_nsin;
struct __pyx_opt_args_8pysndlib_3clm_nrxysin;
struct __pyx_opt_args_8pysndlib_3clm_nrxycos;
struct __pyx_opt_args_8pysndlib_3clm_rxykcos;
struct __pyx_opt_args_8pysndlib_3clm_rxyksin;
struct __pyx_opt_args_8pysndlib_3clm_ssb_am;
struct __pyx_opt_args_8pysndlib_3clm_wave_train;
struct __pyx_opt_args_8pysndlib_3clm_rand;
struct __pyx_opt_args_8pysndlib_3clm_rand_interp;
struct __pyx_opt_args_8pysndlib_3clm_formant;
struct __pyx_opt_args_8pysndlib_3clm_firmant;
struct __pyx_opt_args_8pysndlib_3clm_delay;
struct __pyx_opt_args_8pysndlib_3clm_tap;
struct __pyx_opt_args_8pysndlib_3clm_comb;
struct __pyx_opt_args_8pysndlib_3clm_filtered_comb;
struct __pyx_opt_args_8pysndlib_3clm_notch;
struct __pyx_opt_args_8pysndlib_3clm_all_pass;
struct __pyx_opt_args_8pysndlib_3clm_asymmetric_fm;
struct __pyx_opt_args_8pysndlib_3clm_file2sample;
struct __pyx_opt_args_8pysndlib_3clm_src;
struct __pyx_opt_args_8pysndlib_3clm_out_any;
struct __pyx_opt_args_8pysndlib_3clm_outa;
struct __pyx_opt_args_8pysndlib_3clm_outb;
struct __pyx_opt_args_8pysndlib_3clm_outc;
struct __pyx_opt_args_8pysndlib_3clm_outd;
struct __pyx_opt_args_8pysndlib_3clm_convolve_files;
struct __pyx_opt_args_8pysndlib_3clm_biquad_set_resonance;
struct __pyx_opt_args_8pysndlib_3clm_edot_product;

/* "pysndlib/clm.pxd":14
 * 
 * # --------------- clm enums ---------------- #
 * cpdef enum Interp:             # <<<<<<<<<<<<<<
 *     """
 *     various interpolation types
 */
enum __pyx_t_8pysndlib_3clm_Interp {
  __pyx_e_8pysndlib_3clm_NONE,
  __pyx_e_8pysndlib_3clm_LINEAR,
  __pyx_e_8pysndlib_3clm_SINUSOIDAL,
  __pyx_e_8pysndlib_3clm_ALL_PASS,
  __pyx_e_8pysndlib_3clm_LAGRANGE,
  __pyx_e_8pysndlib_3clm_BEZIER,
  __pyx_e_8pysndlib_3clm_HERMITE
};

/* "pysndlib/clm.pxd":20
 *     NONE, LINEAR,SINUSOIDAL, ALL_PASS, LAGRANGE, BEZIER, HERMITE
 * 
 * cpdef enum Window:             # <<<<<<<<<<<<<<
 *     """
 *     many useful windows
 */
enum __pyx_t_8pysndlib_3clm_Window {
  __pyx_e_8pysndlib_3clm_RECTANGULAR,
  __pyx_e_8pysndlib_3clm_HANN,
  __pyx_e_8pysndlib_3clm_WELCH,
  __pyx_e_8pysndlib_3clm_PARZEN,
  __pyx_e_8pysndlib_3clm_BARTLETT,
  __pyx_e_8pysndlib_3clm_HAMMING,
  __pyx_e_8pysndlib_3clm_BLACKMAN2,
  __pyx_e_8pysndlib_3clm_BLACKMAN3,
  __pyx_e_8pysndlib_3clm_BLACKMAN4,
  __pyx_e_8pysndlib_3clm_EXPONENTIAL,
  __pyx_e_8pysndlib_3clm_RIEMANN,
  __pyx_e_8pysndlib_3clm_KAISER,
  __pyx_e_8pysndlib_3clm_CAUCHY,
  __pyx_e_8pysndlib_3clm_POISSON,
  __pyx_e_8pysndlib_3clm_GAUSSIAN,
  __pyx_e_8pysndlib_3clm_TUKEY,
  __pyx_e_8pysndlib_3clm_DOLPH_CHEBYSHEV,
  __pyx_e_8pysndlib_3clm_HANN_POISSON,
  __pyx_e_8pysndlib_3clm_CONNES,
  __pyx_e_8pysndlib_3clm_SAMARAKI,
  __pyx_e_8pysndlib_3clm_ULTRASPHERICAL,
  __pyx_e_8pysndlib_3clm_BARTLETT_HANN,
  __pyx_e_8pysndlib_3clm_BOHMAN,
  __pyx_e_8pysndlib_3clm_FLAT_TOP,
  __pyx_e_8pysndlib_3clm_BLACKMAN5,
  __pyx_e_8pysndlib_3clm_BLACKMAN6,
  __pyx_e_8pysndlib_3clm_BLACKMAN7,
  __pyx_e_8pysndlib_3clm_BLACKMAN8,
  __pyx_e_8pysndlib_3clm_BLACKMAN9,
  __pyx_e_8pysndlib_3clm_BLACKMAN10,
  __pyx_e_8pysndlib_3clm_RV2,
  __pyx_e_8pysndlib_3clm_RV3,
  __pyx_e_8pysndlib_3clm_RV4,
  __pyx_e_8pysndlib_3clm_MLT_SINE,
  __pyx_e_8pysndlib_3clm_PAPOULIS,
  __pyx_e_8pysndlib_3clm_DPSS,
  __pyx_e_8pysndlib_3clm_SINC
};

/* "pysndlib/clm.pxd":26
 *     RECTANGULAR, HANN, WELCH, PARZEN, BARTLETT, HAMMING, BLACKMAN2, BLACKMAN3, BLACKMAN4, EXPONENTIAL, RIEMANN, KAISER, CAUCHY, POISSON, GAUSSIAN, TUKEY, DOLPH_CHEBYSHEV, HANN_POISSON, CONNES, SAMARAKI, ULTRASPHERICAL, BARTLETT_HANN, BOHMAN, FLAT_TOP, BLACKMAN5, BLACKMAN6, BLACKMAN7, BLACKMAN8, BLACKMAN9, BLACKMAN10, RV2, RV3, RV4, MLT_SINE, PAPOULIS, DPSS, SINC,
 * 
 * cpdef enum Spectrum:             # <<<<<<<<<<<<<<
 *     """
 *     types of normalizations when using the spectrum function. the results are in db if in_db, or linear and normalized to 1.0 normalized, or linear unnormalized raw
 */
enum __pyx_t_8pysndlib_3clm_Spectrum {
  __pyx_e_8pysndlib_3clm_IN_DB,
  __pyx_e_8pysndlib_3clm_NORMALIZED,
  __pyx_e_8pysndlib_3clm_RAW
};

/* "pysndlib/clm.pxd":32
 *     IN_DB, NORMALIZED, RAW
 * 
 * cpdef enum Polynomial:             # <<<<<<<<<<<<<<
 *     """
 *     used for polynomial based gens
 */
enum __pyx_t_8pysndlib_3clm_Polynomial {
  __pyx_e_8pysndlib_3clm_EITHER_KIND,
  __pyx_e_8pysndlib_3clm_FIRST_KIND,
  __pyx_e_8pysndlib_3clm_SECOND_KIND,
  __pyx_e_8pysndlib_3clm_BOTH_KINDS
};

/* "pysndlib/clm.pxd":77
 *     # these should all be considered private
 *     @staticmethod
 *     cdef mus_any from_ptr(cclm.mus_any *_ptr, bint owner=*, cython.int length=*)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cache_append(self, obj)
 */
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_from_ptr {
  int __pyx_n;
  int owner;
  int length;
};

/* "pysndlib/clm.pxd":81
 *     cpdef cache_append(self, obj)
 *     cpdef cache_extend(self, obj)
 *     cpdef set_up_data(self , cython.int length=*)             # <<<<<<<<<<<<<<
 *     cpdef set_up_xcoeffs(self)
 *     cpdef set_up_ycoeffs(self)
 */
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_set_up_data {
  int __pyx_n;
  int length;
};

/* "pysndlib/clm.pxd":88
 *     # these should all be considered public
 *     cpdef mus_reset(self)
 *     cpdef next(self, cython.double arg1=*, cython.double arg2=*)             # <<<<<<<<<<<<<<
 * 
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_7mus_any_next {
  int __pyx_n;
  double arg1;
  double arg2;
};

/* "pysndlib/clm.pxd":97
 * cpdef mus_reset(mus_any obj)
 * cpdef cython.long get_length(obj)
 * cpdef cython.double get_srate(obj=*)             # <<<<<<<<<<<<<<
 * cpdef cython.long get_framples(obj)
 * cpdef cython.long get_channels(obj)
 */
struct __pyx_opt_args_8pysndlib_3clm_get_srate {
  int __pyx_n;
  PyObject *obj;
};

/* "pysndlib/clm.pxd":100
 * cpdef cython.long get_framples(obj)
 * cpdef cython.long get_channels(obj)
 * cpdef cython.double random(cython.double x=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_zero( cython.double x)
 * cpdef bint is_even(n)
 */
struct __pyx_opt_args_8pysndlib_3clm_random {
  int __pyx_n;
  double x;
};

/* "pysndlib/clm.pxd":119
 * cpdef cython.double ring_modulate(cython.double s1, cython.double s2)
 * cpdef cython.double amplitude_modulate(cython.double s1, cython.double s2, cython.double s3)
 * cpdef cython.double contrast_enhancement(cython.double insig, cython.double fm_index=* )             # <<<<<<<<<<<<<<
 * cpdef cython.double dot_product(np.ndarray data1, np.ndarray  data2)
 * cpdef cython.double polynomial(np.ndarray coeffs, cython.double x )
 */
struct __pyx_opt_args_8pysndlib_3clm_contrast_enhancement {
  int __pyx_n;
  double fm_index;
};

/* "pysndlib/clm.pxd":124
 * cpdef cython.double array_interp(np.ndarray  fn, cython.double  x)
 * cpdef cython.double bessi0(cython.double x)
 * cpdef cython.double mus_interpolate(Interp interp_type, cython.double x, np.ndarray table, cython.double y1 =*)             # <<<<<<<<<<<<<<
 * cpdef np.ndarray make_fft_window(Window window_type, cython.int size, cython.double beta=* , cython.double alpha=*)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_mus_interpolate {
  int __pyx_n;
  double y1;
};

/* "pysndlib/clm.pxd":125
 * cpdef cython.double bessi0(cython.double x)
 * cpdef cython.double mus_interpolate(Interp interp_type, cython.double x, np.ndarray table, cython.double y1 =*)
 * cpdef np.ndarray make_fft_window(Window window_type, cython.int size, cython.double beta=* , cython.double alpha=*)             # <<<<<<<<<<<<<<
 * 
 * cpdef file2ndarray(str filename, channel=*, beg=*, size=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_make_fft_window {
  int __pyx_n;
  double beta;
  double alpha;
};

/* "pysndlib/clm.pxd":127
 * cpdef np.ndarray make_fft_window(Window window_type, cython.int size, cython.double beta=* , cython.double alpha=*)
 * 
 * cpdef file2ndarray(str filename, channel=*, beg=*, size=*)             # <<<<<<<<<<<<<<
 * cpdef ndarray2file(str filename, np.ndarray arr, size=*, sr=*, sample_type=*, header_type=*, comment=* )
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_file2ndarray {
  int __pyx_n;
  PyObject *channel;
  PyObject *beg;
  PyObject *size;
};

/* "pysndlib/clm.pxd":128
 * 
 * cpdef file2ndarray(str filename, channel=*, beg=*, size=*)
 * cpdef ndarray2file(str filename, np.ndarray arr, size=*, sr=*, sample_type=*, header_type=*, comment=* )             # <<<<<<<<<<<<<<
 * 
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_ndarray2file {
  int __pyx_n;
  PyObject *size;
  PyObject *sr;
  PyObject *sample_type;
  PyObject *header_type;
  PyObject *comment;
};

/* "pysndlib/clm.pxd":139
 * cpdef np.ndarray mus_polar2rectangular(np.ndarray rdat,  np.ndarray idat)
 * cpdef tuple polar2rectangular(np.ndarray rdat, np.ndarray idat)
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)             # <<<<<<<<<<<<<<
 * cpdef tuple spectrum(np.ndarray rdat,np.ndarray idat,np.ndarray window, Spectrum norm_type=*)
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_mus_spectrum {
  int __pyx_n;
  enum __pyx_t_8pysndlib_3clm_Spectrum norm_type;
};

/* "pysndlib/clm.pxd":140
 * cpdef tuple polar2rectangular(np.ndarray rdat, np.ndarray idat)
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)
 * cpdef tuple spectrum(np.ndarray rdat,np.ndarray idat,np.ndarray window, Spectrum norm_type=*)             # <<<<<<<<<<<<<<
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)
 * cpdef np.ndarray convolution(np.ndarray rl1, np.ndarray  rl2, fft_size = *)
 */
struct __pyx_opt_args_8pysndlib_3clm_spectrum {
  int __pyx_n;
  enum __pyx_t_8pysndlib_3clm_Spectrum norm_type;
};

/* "pysndlib/clm.pxd":142
 * cpdef tuple spectrum(np.ndarray rdat,np.ndarray idat,np.ndarray window, Spectrum norm_type=*)
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)
 * cpdef np.ndarray convolution(np.ndarray rl1, np.ndarray  rl2, fft_size = *)             # <<<<<<<<<<<<<<
 * cpdef np.ndarray mus_convolution(np.ndarray  rl1, np.ndarray  rl2, fft_size=*)
 * cpdef np.ndarray autocorrelate(np.ndarray data)
 */
struct __pyx_opt_args_8pysndlib_3clm_convolution {
  int __pyx_n;
  PyObject *fft_size;
};

/* "pysndlib/clm.pxd":143
 * cpdef np.ndarray mus_spectrum(np.ndarray rdat, np.ndarray  idat, np.ndarray  window, Spectrum norm_type=*)
 * cpdef np.ndarray convolution(np.ndarray rl1, np.ndarray  rl2, fft_size = *)
 * cpdef np.ndarray mus_convolution(np.ndarray  rl1, np.ndarray  rl2, fft_size=*)             # <<<<<<<<<<<<<<
 * cpdef np.ndarray autocorrelate(np.ndarray data)
 * cpdef np.ndarray mus_autocorrelate(np.ndarray data)
 */
struct __pyx_opt_args_8pysndlib_3clm_mus_convolution {
  int __pyx_n;
  PyObject *fft_size;
};

/* "pysndlib/clm.pxd":150
 * cpdef np.ndarray mus_cepstrum( np.ndarray data)
 * cpdef np.ndarray cepstrum(np.ndarray data)
 * cpdef np.ndarray partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )             # <<<<<<<<<<<<<<
 * cpdef np.ndarray phase_partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )
 * cpdef np.ndarray partials2polynomial(partials, Polynomial kind=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_partials2wave {
  int __pyx_n;
  PyArrayObject *wave;
  PyObject *table_size;
  int norm;
};

/* "pysndlib/clm.pxd":151
 * cpdef np.ndarray cepstrum(np.ndarray data)
 * cpdef np.ndarray partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )
 * cpdef np.ndarray phase_partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )             # <<<<<<<<<<<<<<
 * cpdef np.ndarray partials2polynomial(partials, Polynomial kind=*)
 * cpdef np.ndarray normalize_partials(partials)
 */
struct __pyx_opt_args_8pysndlib_3clm_phase_partials2wave {
  int __pyx_n;
  PyArrayObject *wave;
  PyObject *table_size;
  int norm;
};

/* "pysndlib/clm.pxd":152
 * cpdef np.ndarray partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )
 * cpdef np.ndarray phase_partials2wave(partials, np.ndarray wave=*, table_size=*, bint norm=* )
 * cpdef np.ndarray partials2polynomial(partials, Polynomial kind=*)             # <<<<<<<<<<<<<<
 * cpdef np.ndarray normalize_partials(partials)
 * cpdef cython.double chebyshev_tu_sum(cython.double x, tcoeffs, ucoeffs)
 */
struct __pyx_opt_args_8pysndlib_3clm_partials2polynomial {
  int __pyx_n;
  enum __pyx_t_8pysndlib_3clm_Polynomial kind;
};

/* "pysndlib/clm.pxd":160
 * # ---------------- clm gen ---------------- #
 * 
 * cpdef cython.double oscil(mus_any gen, cython.double fm=*, cython.double pm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double oscil_unmodulated(mus_any gen)
 * cpdef bint is_oscil(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_oscil {
  int __pyx_n;
  double fm;
  double pm;
};

/* "pysndlib/clm.pxd":176
 * cpdef cython.double env_any(mus_any gen , connection_function)
 * 
 * cpdef cython.double pulsed_env(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double pulsed_env_unmodulated(mus_any gen)
 * cpdef bint is_pulsed_env(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_pulsed_env {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":180
 * cpdef bint is_pulsed_env(mus_any gen)
 * 
 * cpdef cython.double table_lookup(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double table_lookup_unmodulated(mus_any gen)
 * cpdef bint is_table_lookup(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_table_lookup {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":183
 * cpdef cython.double table_lookup_unmodulated(mus_any gen)
 * cpdef bint is_table_lookup(mus_any gen)
 * cpdef mus_any make_table_lookup_with_env(cython.double frequency, envelope, size= *)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double polywave(mus_any gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_make_table_lookup_with_env {
  int __pyx_n;
  PyObject *size;
};

/* "pysndlib/clm.pxd":185
 * cpdef mus_any make_table_lookup_with_env(cython.double frequency, envelope, size= *)
 * 
 * cpdef cython.double polywave(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double polywave_unmodulated(mus_any gen)
 * cpdef bint is_polywave(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_polywave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":189
 * cpdef bint is_polywave(mus_any gen)
 * 
 * cpdef cython.double polyshape(mus_any gen, cython.double index=*, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double polyshape_unmodulated(mus_any gen, cython.double index=*)
 * cpdef bint is_polyshape(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_polyshape {
  int __pyx_n;
  double index;
  double fm;
};

/* "pysndlib/clm.pxd":190
 * 
 * cpdef cython.double polyshape(mus_any gen, cython.double index=*, cython.double fm=*)
 * cpdef cython.double polyshape_unmodulated(mus_any gen, cython.double index=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_polyshape(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_polyshape_unmodulated {
  int __pyx_n;
  double index;
};

/* "pysndlib/clm.pxd":193
 * cpdef bint is_polyshape(mus_any gen)
 * 
 * cpdef cython.double triangle_wave(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double triangle_wave_unmodulated(mus_any gen)
 * cpdef bint is_triangle_wave(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_triangle_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":197
 * cpdef bint is_triangle_wave(mus_any gen)
 * 
 * cpdef cython.double square_wave(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_square_wave(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_square_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":200
 * cpdef bint is_square_wave(mus_any gen)
 * 
 * cpdef mus_any make_sawtooth_wave(cython.double frequency, cython.double amplitude=*, cython.double phase=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double sawtooth_wave(mus_any gen, cython.double fm =*)
 * cpdef bint is_sawtooth_wave(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_make_sawtooth_wave {
  int __pyx_n;
  double amplitude;
  double phase;
};

/* "pysndlib/clm.pxd":201
 * 
 * cpdef mus_any make_sawtooth_wave(cython.double frequency, cython.double amplitude=*, cython.double phase=*)
 * cpdef cython.double sawtooth_wave(mus_any gen, cython.double fm =*)             # <<<<<<<<<<<<<<
 * cpdef bint is_sawtooth_wave(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_sawtooth_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":204
 * cpdef bint is_sawtooth_wave(mus_any gen)
 * 
 * cpdef cython.double pulse_train(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double pulse_train_unmodulated(mus_any gen)
 * cpdef bint is_pulse_train(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_pulse_train {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":208
 * cpdef bint is_pulse_train(mus_any gen)
 * 
 * cpdef cython.double ncos(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_ncos(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_ncos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":211
 * cpdef bint is_ncos(mus_any gen)
 * 
 * cpdef cython.double nsin(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_nsin(mus_any gen )
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_nsin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":214
 * cpdef bint is_nsin(mus_any gen )
 * 
 * cpdef cython.double nrxysin(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_nrxysin(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_nrxysin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":217
 * cpdef bint is_nrxysin(mus_any gen)
 * 
 * cpdef cython.double nrxycos(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_nrxycos(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_nrxycos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":220
 * cpdef bint is_nrxycos(mus_any gen)
 * 
 * cpdef cython.double rxykcos(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_rxykcos(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_rxykcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":223
 * cpdef bint is_rxykcos(mus_any gen)
 * 
 * cpdef cython.double rxyksin(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_rxyksin(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_rxyksin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":226
 * cpdef bint is_rxyksin(mus_any gen)
 * 
 * cpdef cython.double ssb_am(mus_any gen, cython.double insig, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double ssb_am_unmodulated(mus_any gen, cython.double insig)
 * cpdef bint is_ssb_am(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_ssb_am {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":230
 * cpdef bint is_ssb_am(mus_any gen)
 * 
 * cpdef cython.double wave_train(mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double wave_train_unmodulated(mus_any gen)
 * cpdef bint is_wave_train(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_wave_train {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":234
 * cpdef bint is_wave_train(mus_any gen)
 * 
 * cpdef cython.double rand(mus_any gen, cython.double sweep=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double rand_unmodulated(mus_any gen)
 * cpdef bint is_rand(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_rand {
  int __pyx_n;
  double sweep;
};

/* "pysndlib/clm.pxd":238
 * cpdef bint is_rand(mus_any gen)
 * 
 * cpdef rand_interp(mus_any gen, cython.double sweep=*)             # <<<<<<<<<<<<<<
 * cpdef rand_interp_unmodulated(mus_any gen)
 * cpdef bint is_rand_interp(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_rand_interp {
  int __pyx_n;
  double sweep;
};

/* "pysndlib/clm.pxd":254
 * cpdef bint is_two_zero(mus_any gen)
 * 
 * cpdef cython.double formant(mus_any gen, cython.double insig, cython.double radians=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_formant(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_formant {
  int __pyx_n;
  double radians;
};

/* "pysndlib/clm.pxd":260
 * cpdef bint is_formant_bank(mus_any gen)
 * 
 * cpdef firmant(mus_any gen, cython.double insig, cython.double radians=*)             # <<<<<<<<<<<<<<
 * cpdef is_firmant(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_firmant {
  int __pyx_n;
  double radians;
};

/* "pysndlib/clm.pxd":272
 * cpdef bint is_iir_filter(mus_any gen)
 * 
 * cpdef cython.double delay(mus_any gen, cython.double insig, cython.double pm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double delay_unmodulated(mus_any gen, cython.double insig)
 * cpdef bint is_delay(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_delay {
  int __pyx_n;
  double pm;
};

/* "pysndlib/clm.pxd":275
 * cpdef cython.double delay_unmodulated(mus_any gen, cython.double insig)
 * cpdef bint is_delay(mus_any gen)
 * cpdef cython.double tap(mus_any gen, offset=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double tap_unmodulated(mus_any gen)
 * cpdef bint is_tap(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_tap {
  int __pyx_n;
  PyObject *offset;
};

/* "pysndlib/clm.pxd":280
 * cpdef cython.double delay_tick(mus_any gen, cython.double insig )
 * 
 * cpdef cython.double comb(mus_any gen, cython.double insig, pm=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_comb(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_comb {
  int __pyx_n;
  PyObject *pm;
};

/* "pysndlib/clm.pxd":286
 * cpdef bint is_comb_bank(mus_any gen)
 * 
 * cpdef cython.double filtered_comb(mus_any gen, cython.double insig, cython.double pm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double filtered_comb_unmodulated(mus_any gen, cython.double insig)
 * cpdef bint is_filtered_comb(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_filtered_comb {
  int __pyx_n;
  double pm;
};

/* "pysndlib/clm.pxd":293
 * cpdef bint is_filtered_comb_bank(mus_any gen)
 * 
 * cpdef cython.double notch(mus_any gen, cython.double insig, cython.double pm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double notch_unmodulated(mus_any gen, cython.double insig)
 * cpdef bint is_notch(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_notch {
  int __pyx_n;
  double pm;
};

/* "pysndlib/clm.pxd":297
 * cpdef bint is_notch(mus_any gen)
 * 
 * cpdef cython.double all_pass(mus_any gen, cython.double insig, pm=*)             # <<<<<<<<<<<<<<
 * cpdef is_all_pass(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_all_pass {
  int __pyx_n;
  PyObject *pm;
};

/* "pysndlib/clm.pxd":315
 * cpdef is_moving_norm(mus_any gen)
 * 
 * cpdef cython.double asymmetric_fm(mus_any gen, cython.double index, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double asymmetric_fm_unmodulated(mus_any gen, cython.double index)
 * cpdef bint is_asymmetric_fm(mus_any gen)
 */
struct __pyx_opt_args_8pysndlib_3clm_asymmetric_fm {
  int __pyx_n;
  double fm;
};

/* "pysndlib/clm.pxd":319
 * cpdef bint is_asymmetric_fm(mus_any gen)
 * 
 * cpdef cython.double file2sample(mus_any gen, cython.long loc, cython.int chan=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_file2sample(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_file2sample {
  int __pyx_n;
  int chan;
};

/* "pysndlib/clm.pxd":335
 * cpdef is_readin(mus_any gen)
 * 
 * cpdef cython.double src(mus_any gen, cython.double sr_change=*)             # <<<<<<<<<<<<<<
 * cpdef bint is_src(mus_any gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_src {
  int __pyx_n;
  double sr_change;
};

/* "pysndlib/clm.pxd":352
 * cpdef np.ndarray phase_vocoder_phase_increments(mus_any gen)
 * 
 * cpdef out_any(cython.long loc, cython.double data, cython.int channel, output=*)             # <<<<<<<<<<<<<<
 * cpdef outa(cython.long loc, cython.double data, output=*)
 * cpdef outb(cython.long loc, cython.double data, output=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_out_any {
  int __pyx_n;
  PyObject *output;
};

/* "pysndlib/clm.pxd":353
 * 
 * cpdef out_any(cython.long loc, cython.double data, cython.int channel, output=*)
 * cpdef outa(cython.long loc, cython.double data, output=*)             # <<<<<<<<<<<<<<
 * cpdef outb(cython.long loc, cython.double data, output=*)
 * cpdef outc(cython.long loc, cython.double data, output=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_outa {
  int __pyx_n;
  PyObject *output;
};

/* "pysndlib/clm.pxd":354
 * cpdef out_any(cython.long loc, cython.double data, cython.int channel, output=*)
 * cpdef outa(cython.long loc, cython.double data, output=*)
 * cpdef outb(cython.long loc, cython.double data, output=*)             # <<<<<<<<<<<<<<
 * cpdef outc(cython.long loc, cython.double data, output=*)
 * cpdef outd(cython.long loc, cython.double data, output=*)
 */
struct __pyx_opt_args_8pysndlib_3clm_outb {
  int __pyx_n;
  PyObject *output;
};

/* "pysndlib/clm.pxd":355
 * cpdef outa(cython.long loc, cython.double data, output=*)
 * cpdef outb(cython.long loc, cython.double data, output=*)
 * cpdef outc(cython.long loc, cython.double data, output=*)             # <<<<<<<<<<<<<<
 * cpdef outd(cython.long loc, cython.double data, output=*)
 * cpdef in_any(cython.long loc, cython.int channel, inp)
 */
struct __pyx_opt_args_8pysndlib_3clm_outc {
  int __pyx_n;
  PyObject *output;
};

/* "pysndlib/clm.pxd":356
 * cpdef outb(cython.long loc, cython.double data, output=*)
 * cpdef outc(cython.long loc, cython.double data, output=*)
 * cpdef outd(cython.long loc, cython.double data, output=*)             # <<<<<<<<<<<<<<
 * cpdef in_any(cython.long loc, cython.int channel, inp)
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_outd {
  int __pyx_n;
  PyObject *output;
};

/* "pysndlib/clm.pxd":372
 * cpdef move_locsig(mus_any gen,cython.double degree, cython.double distance)
 * 
 * cpdef convolve_files(str file1, str file2, cython.double maxamp=*, str outputfile=*, sample_type=*, header_type=*)             # <<<<<<<<<<<<<<
 * 
 * 
 */
struct __pyx_opt_args_8pysndlib_3clm_convolve_files {
  int __pyx_n;
  double maxamp;
  PyObject *outputfile;
  PyObject *sample_type;
  PyObject *header_type;
};

/* "pysndlib/clm.pxd":380
 * cpdef cython.double biquad(mus_any gen, cython.double insig)
 * cpdef bint is_biquad(mus_any gen)
 * cpdef biquad_set_resonance(mus_any gen, cython.double fc, cython.double radius, bint normalize=*)             # <<<<<<<<<<<<<<
 * cpdef biquad_set_equal_gain_zeroes(mus_any gen)
 * cpdef cython.double bes_j0(cython.double x)
 */
struct __pyx_opt_args_8pysndlib_3clm_biquad_set_resonance {
  int __pyx_n;
  int normalize;
};

/* "pysndlib/clm.pxd":390
 * 
 * 
 * cpdef cython.doublecomplex edot_product(cython.doublecomplex freq, np.ndarray data, size=*)             # <<<<<<<<<<<<<<
 * 
 * #cpdef mus_any make_oscil(cython.double frequency=*,cython.double  initial_phase = *)
 */
struct __pyx_opt_args_8pysndlib_3clm_edot_product {
  int __pyx_n;
  PyObject *size;
};
struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next;
struct __pyx_opt_args_8pysndlib_10generators_nssb;
struct __pyx_opt_args_8pysndlib_10generators_nxysin;
struct __pyx_opt_args_8pysndlib_10generators_nxycos;
struct __pyx_opt_args_8pysndlib_10generators_nxy1cos;
struct __pyx_opt_args_8pysndlib_10generators_nxy1sin;
struct __pyx_opt_args_8pysndlib_10generators_noddcos;
struct __pyx_opt_args_8pysndlib_10generators_noddssb;
struct __pyx_opt_args_8pysndlib_10generators_ncos2;
struct __pyx_opt_args_8pysndlib_10generators_ncos4;
struct __pyx_opt_args_8pysndlib_10generators_npcos;
struct __pyx_opt_args_8pysndlib_10generators_ncos5;
struct __pyx_opt_args_8pysndlib_10generators_nsin5;
struct __pyx_opt_args_8pysndlib_10generators_nrsin;
struct __pyx_opt_args_8pysndlib_10generators_nrcos;
struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp;
struct __pyx_opt_args_8pysndlib_10generators_nrssb;
struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp;
struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp;
struct __pyx_opt_args_8pysndlib_10generators_nkssb;
struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp;
struct __pyx_opt_args_8pysndlib_10generators_nsincos;
struct __pyx_opt_args_8pysndlib_10generators_n1cos;
struct __pyx_opt_args_8pysndlib_10generators_npos1cos;
struct __pyx_opt_args_8pysndlib_10generators_npos3cos;
struct __pyx_opt_args_8pysndlib_10generators_rcos;
struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp;
struct __pyx_opt_args_8pysndlib_10generators_rssb;
struct __pyx_opt_args_8pysndlib_10generators_rssb_interp;
struct __pyx_opt_args_8pysndlib_10generators_rxysin;
struct __pyx_opt_args_8pysndlib_10generators_rxycos;
struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r;
struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos;
struct __pyx_opt_args_8pysndlib_10generators_ercos;
struct __pyx_opt_args_8pysndlib_10generators_erssb;
struct __pyx_opt_args_8pysndlib_10generators_r2cos;
struct __pyx_opt_args_8pysndlib_10generators_r2ssb;
struct __pyx_opt_args_8pysndlib_10generators_eoddcos;
struct __pyx_opt_args_8pysndlib_10generators_rkcos;
struct __pyx_opt_args_8pysndlib_10generators_rksin;
struct __pyx_opt_args_8pysndlib_10generators_rkfcos;
struct __pyx_opt_args_8pysndlib_10generators_rkfssb;
struct __pyx_opt_args_8pysndlib_10generators_r2kfcos;
struct __pyx_opt_args_8pysndlib_10generators_k2sin;
struct __pyx_opt_args_8pysndlib_10generators_k2cos;
struct __pyx_opt_args_8pysndlib_10generators_k2ssb;
struct __pyx_opt_args_8pysndlib_10generators_dblsum;
struct __pyx_opt_args_8pysndlib_10generators_rkoddssb;
struct __pyx_opt_args_8pysndlib_10generators_krksin;
struct __pyx_opt_args_8pysndlib_10generators_absin;
struct __pyx_opt_args_8pysndlib_10generators_abcos;
struct __pyx_opt_args_8pysndlib_10generators_r2k2cos;
struct __pyx_opt_args_8pysndlib_10generators_blsaw;
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i;
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j;
struct __pyx_opt_args_8pysndlib_10generators_asyfm;
struct __pyx_opt_args_8pysndlib_10generators_asyfm_i;
struct __pyx_opt_args_8pysndlib_10generators_asyfm_j;
struct __pyx_opt_args_8pysndlib_10generators_bess;
struct __pyx_opt_args_8pysndlib_10generators_jjcos;
struct __pyx_opt_args_8pysndlib_10generators_j0evencos;
struct __pyx_opt_args_8pysndlib_10generators_j2cos;
struct __pyx_opt_args_8pysndlib_10generators_jpcos;
struct __pyx_opt_args_8pysndlib_10generators_jncos;
struct __pyx_opt_args_8pysndlib_10generators_j0j1cos;
struct __pyx_opt_args_8pysndlib_10generators_jycos;
struct __pyx_opt_args_8pysndlib_10generators_jcos;
struct __pyx_opt_args_8pysndlib_10generators_blackman;
struct __pyx_opt_args_8pysndlib_10generators_fmssb;
struct __pyx_opt_args_8pysndlib_10generators_k3sin;
struct __pyx_opt_args_8pysndlib_10generators_izcos;
struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave;
struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave;
struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave;
struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil;
struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env;
struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env;
struct __pyx_opt_args_8pysndlib_10generators_round_interp;
struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos;
struct __pyx_opt_args_8pysndlib_10generators_sinc_train;
struct __pyx_opt_args_8pysndlib_10generators_pink_noise;
struct __pyx_opt_args_8pysndlib_10generators_brown_noise;
struct __pyx_opt_args_8pysndlib_10generators_moving_sum;
struct __pyx_opt_args_8pysndlib_10generators_moving_variance;
struct __pyx_opt_args_8pysndlib_10generators_moving_rms;
struct __pyx_opt_args_8pysndlib_10generators_moving_length;
struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average;
struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average;
struct __pyx_opt_args_8pysndlib_10generators_polyoid;
struct __pyx_opt_args_8pysndlib_10generators_tanhsin;
struct __pyx_opt_args_8pysndlib_10generators_4Nssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nssb;
struct __pyx_opt_args_8pysndlib_10generators_6Nxysin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nxysin;
struct __pyx_opt_args_8pysndlib_10generators_6Nxycos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nxycos;
struct __pyx_opt_args_8pysndlib_10generators_7Nxy1cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nxy1cos;
struct __pyx_opt_args_8pysndlib_10generators_7Nxy1sin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nxy1sin;
struct __pyx_opt_args_8pysndlib_10generators_7Noddsin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_noddsin;
struct __pyx_opt_args_8pysndlib_10generators_noddsin;
struct __pyx_opt_args_8pysndlib_10generators_7Noddcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_noddcos;
struct __pyx_opt_args_8pysndlib_10generators_7Noddssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_noddssb;
struct __pyx_opt_args_8pysndlib_10generators_5Ncos2_next;
struct __pyx_opt_args_8pysndlib_10generators_make_ncos2;
struct __pyx_opt_args_8pysndlib_10generators_5Ncos4_next;
struct __pyx_opt_args_8pysndlib_10generators_make_ncos4;
struct __pyx_opt_args_8pysndlib_10generators_5Npcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_npcos;
struct __pyx_opt_args_8pysndlib_10generators_5Ncos5_next;
struct __pyx_opt_args_8pysndlib_10generators_make_ncos5;
struct __pyx_opt_args_8pysndlib_10generators_5Nsin5_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nsin5;
struct __pyx_opt_args_8pysndlib_10generators_make_nrsin;
struct __pyx_opt_args_8pysndlib_10generators_5Nrcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nrcos;
struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nrssb;
struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nkssb;
struct __pyx_opt_args_8pysndlib_10generators_7Nsincos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nsincos;
struct __pyx_opt_args_8pysndlib_10generators_5N1cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_n1cos;
struct __pyx_opt_args_8pysndlib_10generators_8Npos1cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_npos1cos;
struct __pyx_opt_args_8pysndlib_10generators_8Npos3cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_npos3cos;
struct __pyx_opt_args_8pysndlib_10generators_4Rcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rcos;
struct __pyx_opt_args_8pysndlib_10generators_4Rssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rssb;
struct __pyx_opt_args_8pysndlib_10generators_6Rxysin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rxysin;
struct __pyx_opt_args_8pysndlib_10generators_6Rxycos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rxycos;
struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_safe_rxycos;
struct __pyx_opt_args_8pysndlib_10generators_5Ercos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_ercos;
struct __pyx_opt_args_8pysndlib_10generators_5Erssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_erssb;
struct __pyx_opt_args_8pysndlib_10generators_5R2cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_r2cos;
struct __pyx_opt_args_8pysndlib_10generators_5R2ssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_r2ssb;
struct __pyx_opt_args_8pysndlib_10generators_7Eoddcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_eoddcos;
struct __pyx_opt_args_8pysndlib_10generators_5Rkcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rkcos;
struct __pyx_opt_args_8pysndlib_10generators_5Rksin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rksin;
struct __pyx_opt_args_8pysndlib_10generators_5Rkssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rkssb;
struct __pyx_opt_args_8pysndlib_10generators_rkssb;
struct __pyx_opt_args_8pysndlib_10generators_6Rkfcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rkfcos;
struct __pyx_opt_args_8pysndlib_10generators_6Rkfssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rkfssb;
struct __pyx_opt_args_8pysndlib_10generators_7R2kfcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_r2kfcos;
struct __pyx_opt_args_8pysndlib_10generators_5K2sin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_k2sin;
struct __pyx_opt_args_8pysndlib_10generators_5K2cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_k2cos;
struct __pyx_opt_args_8pysndlib_10generators_5K2ssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_k2ssb;
struct __pyx_opt_args_8pysndlib_10generators_6Dblsum_next;
struct __pyx_opt_args_8pysndlib_10generators_make_dblsum;
struct __pyx_opt_args_8pysndlib_10generators_8Rkoddssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_rkoddssb;
struct __pyx_opt_args_8pysndlib_10generators_6Krksin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_krksin;
struct __pyx_opt_args_8pysndlib_10generators_5Absin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_absin;
struct __pyx_opt_args_8pysndlib_10generators_5Abcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_abcos;
struct __pyx_opt_args_8pysndlib_10generators_7R2k2cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_r2k2cos;
struct __pyx_opt_args_8pysndlib_10generators_5Blsaw_next;
struct __pyx_opt_args_8pysndlib_10generators_make_blsaw;
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next;
struct __pyx_opt_args_8pysndlib_10generators_make_asyfm;
struct __pyx_opt_args_8pysndlib_10generators_4Bess_next;
struct __pyx_opt_args_8pysndlib_10generators_make_bess;
struct __pyx_opt_args_8pysndlib_10generators_5Jjcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_jjcos;
struct __pyx_opt_args_8pysndlib_10generators_9J0evencos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_j0evencos;
struct __pyx_opt_args_8pysndlib_10generators_5J2cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_j2cos;
struct __pyx_opt_args_8pysndlib_10generators_5Jpcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_jpcos;
struct __pyx_opt_args_8pysndlib_10generators_5Jncos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_jncos;
struct __pyx_opt_args_8pysndlib_10generators_7J0j1cos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_j0j1cos;
struct __pyx_opt_args_8pysndlib_10generators_5Jycos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_jycos;
struct __pyx_opt_args_8pysndlib_10generators_4Jcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_jcos;
struct __pyx_opt_args_8pysndlib_10generators_8Blackman_next;
struct __pyx_opt_args_8pysndlib_10generators_make_blackman;
struct __pyx_opt_args_8pysndlib_10generators_5Fmssb_next;
struct __pyx_opt_args_8pysndlib_10generators_make_fmssb;
struct __pyx_opt_args_8pysndlib_10generators_5K3sin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_k3sin;
struct __pyx_opt_args_8pysndlib_10generators_5Izcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_izcos;
struct __pyx_opt_args_8pysndlib_10generators_20AdjustableSquareWave_next;
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_square_wave;
struct __pyx_opt_args_8pysndlib_10generators_22AdjustableTriangleWave_next;
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_triangle_wave;
struct __pyx_opt_args_8pysndlib_10generators_22AdjustableSawtoothWave_next;
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_sawtooth_wave;
struct __pyx_opt_args_8pysndlib_10generators_15AdjustableOscil_next;
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_oscil;
struct __pyx_opt_args_8pysndlib_10generators_11RoundInterp_next;
struct __pyx_opt_args_8pysndlib_10generators_make_round_interp;
struct __pyx_opt_args_8pysndlib_10generators_11Nchoosekcos_next;
struct __pyx_opt_args_8pysndlib_10generators_make_nchoosekcos;
struct __pyx_opt_args_8pysndlib_10generators_9SincTrain_next;
struct __pyx_opt_args_8pysndlib_10generators_make_sinc_train;
struct __pyx_opt_args_8pysndlib_10generators_9PinkNoise_next;
struct __pyx_opt_args_8pysndlib_10generators_make_pink_noise;
struct __pyx_opt_args_8pysndlib_10generators_10BrownNoise_next;
struct __pyx_opt_args_8pysndlib_10generators_make_brown_noise;
struct __pyx_opt_args_8pysndlib_10generators_10GreenNoise_next;
struct __pyx_opt_args_8pysndlib_10generators_make_green_noise;
struct __pyx_opt_args_8pysndlib_10generators_green_noise;
struct __pyx_opt_args_8pysndlib_10generators_16GreenNoiseInterp_next;
struct __pyx_opt_args_8pysndlib_10generators_make_green_noise_interp;
struct __pyx_opt_args_8pysndlib_10generators_green_noise_interp;
struct __pyx_opt_args_8pysndlib_10generators_9MovingSum_next;
struct __pyx_opt_args_8pysndlib_10generators_make_moving_sum;
struct __pyx_opt_args_8pysndlib_10generators_14MovingVariance_next;
struct __pyx_opt_args_8pysndlib_10generators_make_moving_variance;
struct __pyx_opt_args_8pysndlib_10generators_9MovingRMS_next;
struct __pyx_opt_args_8pysndlib_10generators_make_moving_rms;
struct __pyx_opt_args_8pysndlib_10generators_make_moving_length;
struct __pyx_opt_args_8pysndlib_10generators_21WeightedMovingAverage_next;
struct __pyx_opt_args_8pysndlib_10generators_make_weighted_moving_average;
struct __pyx_opt_args_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next;
struct __pyx_opt_args_8pysndlib_10generators_make_exponentially_weighted_moving_average;
struct __pyx_opt_args_8pysndlib_10generators_7Tanhsin_next;
struct __pyx_opt_args_8pysndlib_10generators_make_tanhsin;
struct __pyx_opt_args_8pysndlib_10generators_9MovingFFT_next;
struct __pyx_opt_args_8pysndlib_10generators_make_moving_fft;
struct __pyx_defaults;
typedef struct __pyx_defaults __pyx_defaults;

/* "pysndlib/generators.pxd":27
 * 
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double  fm=*)             # <<<<<<<<<<<<<<
 * 
 * # --------------- nssb ---------------- #
 */
struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":37
 * 
 * 
 * cpdef cython.double nssb (Nssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":48
 *     cdef public cython.double norm
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nxysin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nxysin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":58
 *     cdef public cython.double angle
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nxycos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nxycos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":68
 *     cdef public cython.double angle
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nxy1cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nxy1cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":78
 *     cdef public cython.double angle
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nxy1sin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nxy1sin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":89
 * 
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_noddcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_noddcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":99
 *     cdef public cython.double angle
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_noddssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_noddssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":108
 *     cdef public cython.double angle
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_ncos2(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_ncos2 {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":115
 *     pass
 * 
 * cpdef cython.double ncos4(Ncos4 gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_ncos4(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_ncos4 {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":124
 *     cdef public cython.double angle
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_npcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_npcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":133
 *     cdef public cython.double angle
 * 
 * cpdef cython.double ncos5(Ncos5 gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_ncos5(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_ncos5 {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":145
 *     cdef public cython.double norm
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nsin5(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nsin5 {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":150
 * # --------------- nrsin ---------------- #
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nrsin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nrsin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":167
 *     cdef public cython.bint trouble
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nrcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nrcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":181
 *     cdef public cython.double rn1
 *     cdef public cython.double norm
 *     cpdef call_interp(self, cython.double fm =*, cython.double interp=*)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":183
 *     cpdef call_interp(self, cython.double fm =*, cython.double interp=*)
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=*,cython.double interp =* )
 * cpdef cython.bint is_nrssb(gen)
 */
struct __pyx_opt_args_8pysndlib_10generators_nrssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":184
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm=*)
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=*,cython.double interp =* )             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nrssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":195
 *     cdef public cython.double norm
 *     cdef public cython.double interp
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":197
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=*, cython.double interp=*)
 * cpdef cython.bint is_nkssb(gen)
 */
struct __pyx_opt_args_8pysndlib_10generators_nkssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":198
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=*)
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=*, cython.double interp=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nkssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":210
 *     cdef public cython.double norm
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nsincos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_nsincos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":220
 *     cdef public cython.double angle
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_n1cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_n1cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":230
 *     cdef public cython.double angle
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_npos1cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_npos1cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":238
 *     cdef public cython.double n
 *     cdef public cython.double angle
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_npos3cos(gen)
 * # --------------- rcos ---------------- #
 */
struct __pyx_opt_args_8pysndlib_10generators_npos3cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":251
 *     cdef public cython.double norm
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":264
 * 
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":266
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=*, cython.double interp=*)
 * cpdef cython.bint is_rssb(gen)
 */
struct __pyx_opt_args_8pysndlib_10generators_rssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":267
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=*)
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=*, cython.double interp=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rssb_interp {
  int __pyx_n;
  double fm;
  double interp;
};

/* "pysndlib/generators.pxd":280
 *     cdef public cython.double r2
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rxysin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rxysin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":294
 *     cdef public cython.double norm
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rxycos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rxycos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":306
 *     cdef public cython.double angle
 *     cdef public cython.double cutoff
 *     cpdef clamp_rxycos_r(self, cython.double fm=*)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":308
 *     cpdef clamp_rxycos_r(self, cython.double fm=*)
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_safe_rxycos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":321
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_ercos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_ercos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":331
 *     cdef public cython.double angle
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_erssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_erssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":345
 *     cdef public cython.double angle
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_r2cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_r2cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":357
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_r2ssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_r2ssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":367
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_eoddcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_eoddcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":379
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rkcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rkcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":390
 *     cdef public cython.double angle
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rksin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rksin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":413
 *     cdef public cython.double norm
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rkfcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rkfcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":425
 *     cdef public cython.double angle
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rkfssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rkfssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":445
 *     cdef public cython.double norm
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_r2kfcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_r2kfcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":454
 *     cdef public cython.double angle
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_k2sin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_k2sin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":463
 *     cdef public cython.double angle
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_k2cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_k2cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":473
 *     cdef public cython.double angle
 * 
 * cpdef cython.double k2ssb(K2ssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_k2ssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_k2ssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":483
 *     cdef public cython.double angle
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_dblsum(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_dblsum {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":496
 *     cdef public cython.double norm
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_rkoddssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_rkoddssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":506
 *     cdef public cython.double angle
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_krksin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_krksin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":515
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_absin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_absin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":528
 *     cdef public cython.double norm
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_abcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_abcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":539
 *     cdef cython.double r2k2cos_norm(self, cython.double a)
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_r2k2cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_r2k2cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":550
 *     cdef public cython.double angle
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_blsaw(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_blsaw {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":562
 *     cdef public cython.double index
 *     cdef public cython.double angle
 *     cpdef cython.double next_i(self, cython.double fm =*)             # <<<<<<<<<<<<<<
 *     cpdef cython.double next_j(self, cython.double fm =*)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":563
 *     cdef public cython.double angle
 *     cpdef cython.double next_i(self, cython.double fm =*)
 *     cpdef cython.double next_j(self, cython.double fm =*)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":565
 *     cpdef cython.double next_j(self, cython.double fm =*)
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=*)
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=*)
 */
struct __pyx_opt_args_8pysndlib_10generators_asyfm {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":566
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=*)
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=*)
 * cpdef cython.bint is_asyfm(gen)
 */
struct __pyx_opt_args_8pysndlib_10generators_asyfm_i {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":567
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=*)
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=*)
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_asyfm(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_asyfm_j {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":578
 *     cdef public cython.double norm
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_bess(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_bess {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":590
 *     cdef public cython.double angle
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_jjcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_jjcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":599
 *     cdef public cython.double angle
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_j0evencos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_j0evencos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":612
 *     cdef public cython.double norm
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_j2cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_j2cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":625
 *     cdef public cython.double angle
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_jpcos(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_jpcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":639
 *     cdef public cython.double ra
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_jncos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_jncos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":649
 *     cdef public cython.double angle
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_j0j1cos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_j0j1cos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":660
 *     cdef cython.double angle
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_jycos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_jycos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":670
 *     cdef public cython.double a
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_jcos(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_jcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":680
 *     cpdef mus_reset(self)
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_blackman(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_blackman {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":691
 *     cdef public cython.double angle
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_fmssb(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_fmssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":701
 *     cdef public cython.double angle
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_k3sin(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_k3sin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":714
 *     cdef public cython.double inorm
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_izcos(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_izcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":727
 *     cdef public clm.mus_any p2
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_adjustable_square_wave(gen)
 * # #
 */
struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":742
 *     cdef public cython.double val
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_adjustable_triangle_wave(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":758
 *     cdef public cython.double val
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen)
 * # #
 */
struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":773
 *     cdef public cython.double val
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_adjustable_oscil(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":778
 * 
 * # --------------- make-table-lookup-with-env ---------------- #
 * cpdef make_table_lookup_with_env(frequency, pulse_env, size=*)             # <<<<<<<<<<<<<<
 * 
 * # --------------- make-wave-train-with-env ---------------- #
 */
struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env {
  int __pyx_n;
  PyObject *size;
};

/* "pysndlib/generators.pxd":781
 * 
 * # --------------- make-wave-train-with-env ---------------- #
 * cpdef make_wave_train_with_env(frequency, pulse_env, size=*)             # <<<<<<<<<<<<<<
 * 
 * # --------------- round-interp ---------------- #
 */
struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env {
  int __pyx_n;
  PyObject *size;
};

/* "pysndlib/generators.pxd":791
 *     cdef public clm.mus_any flt
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_round_interp(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_round_interp {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":820
 *     cdef public cython.double angle
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_nchoosekcos(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":834
 *     cdef public cython.double original_frequency
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_sinc_train(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_sinc_train {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":842
 *     cdef public np.ndarray data
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_pink_noise(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_pink_noise {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":853
 *     cdef public clm.mus_any gr
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_brown_noise(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_brown_noise {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":886
 *     cdef public clm.mus_any gen
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_moving_sum(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_moving_sum {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":896
 *     cdef public clm.mus_any gen2
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_moving_variance(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_moving_variance {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":905
 *     cdef public clm.mus_any gen
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_moving_rms(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_moving_rms {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":913
 *     pass
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_moving_length(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_moving_length {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":926
 *     cdef public cython.double den
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_weighted_moving_average(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":935
 *     cdef public clm.mus_any gen
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pxd":940
 * # --------------- polyoid ---------------- #
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_polyoid(gen)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_polyoid {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pxd":961
 *     cdef public clm.mus_any osc
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=*)             # <<<<<<<<<<<<<<
 * cpdef cython.bint is_tanhsin(gen)
 * #
 */
struct __pyx_opt_args_8pysndlib_10generators_tanhsin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":34
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_4Nssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":51
 * 
 * 
 * cpdef Nssb make_nssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":143
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_6Nxysin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":158
 * 
 * 
 * cpdef Nxysin make_nxysin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nxysin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":201
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_6Nxycos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":215
 * 
 * 
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nxycos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":249
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_7Nxy1cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":264
 * 
 * 
 * cpdef cython.double make_nxy1cos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nxy1cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":304
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_7Nxy1sin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":317
 * 
 * 
 * cpdef Nxy1sin make_nxy1sin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nxy1sin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":378
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 */
struct __pyx_opt_args_8pysndlib_10generators_7Noddsin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":392
 * 
 * 
 * cpdef Noddsin make_noddsin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_noddsin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":399
 * 
 * 
 * cpdef cython.double noddsin(Noddsin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */
struct __pyx_opt_args_8pysndlib_10generators_noddsin {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":431
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 */
struct __pyx_opt_args_8pysndlib_10generators_7Noddcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":451
 * 
 * 
 * cpdef Noddcos make_noddcos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_noddcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":488
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_7Noddssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":507
 * 
 * 
 * cpdef Noddssb make_noddssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_noddssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":545
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Ncos2_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":560
 * 
 * 
 * cpdef Ncos2 make_ncos2(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_ncos2 {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":591
 * cdef class Ncos4(Ncos2):
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val
 */
struct __pyx_opt_args_8pysndlib_10generators_5Ncos4_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":596
 * 
 * 
 * cpdef Ncos4 make_ncos4(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 */
struct __pyx_opt_args_8pysndlib_10generators_make_ncos4 {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":632
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 */
struct __pyx_opt_args_8pysndlib_10generators_5Npcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":655
 * 
 * 
 * cpdef Npcos make_npcos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an npcos (Poussin kernel) generator that produces
 */
struct __pyx_opt_args_8pysndlib_10generators_make_npcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":695
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Ncos5_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":709
 * 
 * 
 * cpdef Ncos5 make_ncos5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_ncos5 {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":772
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nsin5_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":787
 * 
 * 
 * cpdef Nsin5 make_nsin5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nsin5 {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":815
 * # --------------- nrsin ---------------- #
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nrsin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
  PyObject *r;
};

/* "pysndlib/generators.pyx":846
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nrcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":894
 * 
 * 
 * cpdef Nrcos make_nrcos(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrcos generator that produces 'n' cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nrcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
  PyObject *r;
};

/* "pysndlib/generators.pyx":936
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":964
 * 
 * 
 * cpdef Nrssb make_nrssb(frequency=0, ratio=1.0, n=1, r=.5) :             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrssb generator that produces returns n sinusoids from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nrssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1013
 *         self.interp = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */
struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1061
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nkssb generator that produces n sinusoids from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nkssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *n;
};

/* "pysndlib/generators.pyx":1113
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 */
struct __pyx_opt_args_8pysndlib_10generators_7Nsincos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1124
 * 
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     return Nsincos(frequency, n)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nsincos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":1155
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 */
struct __pyx_opt_args_8pysndlib_10generators_5N1cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1167
 *         return self.next(fm)
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 */
struct __pyx_opt_args_8pysndlib_10generators_make_n1cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":1200
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 */
struct __pyx_opt_args_8pysndlib_10generators_8Npos1cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1216
 *         return self.next(fm)
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsincos generator that produces n cosines spaced
 */
struct __pyx_opt_args_8pysndlib_10generators_make_npos1cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":1252
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 */
struct __pyx_opt_args_8pysndlib_10generators_8Npos3cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1266
 *         return self.next(fm)
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_npos3cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":1306
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_4Rcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1336
 * 
 * 
 * cpdef Rcos make_rcos(frequency=0, r=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1373
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_4Rssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1409
 * 
 * 
 * cpdef Rssb make_rssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rssb {
  int __pyx_n;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1454
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_6Rxysin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1474
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rxysin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1515
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_6Rxycos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1534
 * 
 * 
 * cpdef Rxycos make_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxycos generator that produces many cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rxycos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1582
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1624
 * 
 * 
 * cpdef SafeRxycos make_safe_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a safe-rxycos generator that produces many cosines from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_safe_rxycos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1665
 *         self.scaler = sinh(self.r) * self.offset
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_5Ercos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1688
 * 
 * 
 * cpdef Ercos make_ercos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an ercos generator (a special case of rcos) that produces
 */
struct __pyx_opt_args_8pysndlib_10generators_make_ercos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1726
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5Erssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1742
 * 
 * 
 * cpdef Erssb make_erssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an erssb generator (a special case of rssb) the produces
 */
struct __pyx_opt_args_8pysndlib_10generators_make_erssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1787
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 */
struct __pyx_opt_args_8pysndlib_10generators_5R2cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1795
 *         return self.next(fm)
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2sin generator that produces many even-numbered
 */
struct __pyx_opt_args_8pysndlib_10generators_make_r2cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1832
 *         self.r = r
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5R2ssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1845
 *         return self.next(fm)
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2ssb generator that produces many even-numbered sinusoids
 */
struct __pyx_opt_args_8pysndlib_10generators_make_r2ssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1882
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 */
struct __pyx_opt_args_8pysndlib_10generators_7Eoddcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1909
 * 
 * 
 * cpdef Eoddcos make_eoddcos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an eoddcos generator that produces many cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_eoddcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":1948
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 */
struct __pyx_opt_args_8pysndlib_10generators_5Rkcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":1980
 * 
 * 
 * cpdef Rkcos make_rkcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkcos generator that produces many cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rkcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2015
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_5Rksin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2032
 * 
 * 
 * cpdef Rksin make_rksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rksin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2070
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5Rkssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2093
 * 
 * 
 * cpdef Rkssb make_rkssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkssb generator that produces many sinusoids from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rkssb {
  int __pyx_n;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2100
 *     return Rkssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 */
struct __pyx_opt_args_8pysndlib_10generators_rkssb {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2130
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_6Rkfcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2155
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfcos (rkf!os) generator that produces many
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rkfcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2197
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_6Rkfssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2219
 * 
 * 
 * cpdef Rkfssb make_rkfssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rkfssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2264
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_7R2kfcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2287
 * 
 * 
 * cpdef R2kfcos make_r2kfcos(frequency=0, r=.5, k=.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2kfcos (r2k!cos) generator that produces many cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_r2kfcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *k;
};

/* "pysndlib/generators.pyx":2326
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_5K2sin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2334
 *         return self.next(fm)
 * 
 * cpdef K2sin make_k2sin(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a k2sin generator that produces many sines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_k2sin {
  int __pyx_n;
  PyObject *frequency;
};

/* "pysndlib/generators.pyx":2371
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_5K2cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2379
 *         return self.next(fm)
 * 
 * cpdef K2cos make_k2cos(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2cos generator that produces many cosines
 */
struct __pyx_opt_args_8pysndlib_10generators_make_k2cos {
  int __pyx_n;
  PyObject *frequency;
};

/* "pysndlib/generators.pyx":2413
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5K2ssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2424
 * 
 * 
 * cpdef K2ssb make_k2ssb(frequency=0, ratio=1.):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2ssb generator that produces many sinusoids from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_k2ssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
};

/* "pysndlib/generators.pyx":2460
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_6Dblsum_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2478
 *         self.frequency = clm.hz2radians(2*val)
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *      creates a dblsum generator that produces many sines from frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_make_dblsum {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2517
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_8Rkoddssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2539
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkoddssb generator that produces many sinusoids from
 */
struct __pyx_opt_args_8pysndlib_10generators_make_rkoddssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2573
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 */
struct __pyx_opt_args_8pysndlib_10generators_6Krksin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2584
 *         return self.next(fm)
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_krksin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2619
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_5Absin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2644
 * 
 * 
 * cpdef Absin make_absin(frequency=0):             # <<<<<<<<<<<<<<
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_absin {
  int __pyx_n;
  PyObject *frequency;
};

/* "pysndlib/generators.pyx":2678
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_5Abcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2686
 *         return self.next(fm)
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *     """
 *     creates an abcos generator that produces many cosines spaced
 */
struct __pyx_opt_args_8pysndlib_10generators_make_abcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *a;
  PyObject *b;
};

/* "pysndlib/generators.pyx":2724
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 */
struct __pyx_opt_args_8pysndlib_10generators_7R2k2cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2734
 *         return self.next(fm)
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */
struct __pyx_opt_args_8pysndlib_10generators_make_r2k2cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2773
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 */
struct __pyx_opt_args_8pysndlib_10generators_5Blsaw_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2793
 *         return self.next(fm)
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_blsaw {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
  PyObject *r;
};

/* "pysndlib/generators.pyx":2829
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 */
struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2851
 *         return self.next(fm)
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 */
struct __pyx_opt_args_8pysndlib_10generators_make_asyfm {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *r;
  PyObject *index;
};

/* "pysndlib/generators.pyx":2912
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 */
struct __pyx_opt_args_8pysndlib_10generators_4Bess_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2920
 *         return self.next(fm)
 * 
 * cpdef Bess make_bess(frequency=0, n=0):             # <<<<<<<<<<<<<<
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_bess {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":2956
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Jjcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":2967
 *         return self.next(fm)
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 */
struct __pyx_opt_args_8pysndlib_10generators_make_jjcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *a;
  PyObject *k;
};

/* "pysndlib/generators.pyx":3002
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 */
struct __pyx_opt_args_8pysndlib_10generators_9J0evencos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3015
 *         return self.next(fm)
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 */
struct __pyx_opt_args_8pysndlib_10generators_make_j0evencos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *index;
};

/* "pysndlib/generators.pyx":3051
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 */
struct __pyx_opt_args_8pysndlib_10generators_5J2cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3061
 *         return self.next(fm)
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_j2cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *n;
};

/* "pysndlib/generators.pyx":3101
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 */
struct __pyx_opt_args_8pysndlib_10generators_5Jpcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3112
 *         return self.next(fm)
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_jpcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *a;
  PyObject *k;
};

/* "pysndlib/generators.pyx":3149
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 */
struct __pyx_opt_args_8pysndlib_10generators_5Jncos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3159
 *         return self.next(fm)
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_jncos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *a;
  PyObject *n;
};

/* "pysndlib/generators.pyx":3194
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 */
struct __pyx_opt_args_8pysndlib_10generators_7J0j1cos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3204
 *         return self.next(fm)
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_j0j1cos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *index;
};

/* "pysndlib/generators.pyx":3246
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 */
struct __pyx_opt_args_8pysndlib_10generators_5Jycos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3259
 *         return self.next(fm)
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 */
struct __pyx_opt_args_8pysndlib_10generators_make_jycos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *a;
};

/* "pysndlib/generators.pyx":3294
 *         self.a = a
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 */
struct __pyx_opt_args_8pysndlib_10generators_4Jcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3306
 *         return self.next(fm)
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_jcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
  PyObject *a;
};

/* "pysndlib/generators.pyx":3346
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return clm.polywave(self.osc, fm)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_8Blackman_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3356
 *         self.angle = 0.
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 */
struct __pyx_opt_args_8pysndlib_10generators_make_blackman {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":3391
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_5Fmssb_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3409
 * 
 * 
 * cpdef Fmssb make_fmssb(frequency=0, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an fmssb generator that produces single-sideband FM.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_fmssb {
  int __pyx_n;
  PyObject *frequency;
  PyObject *ratio;
  PyObject *index;
};

/* "pysndlib/generators.pyx":3444
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 */
struct __pyx_opt_args_8pysndlib_10generators_5K3sin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3459
 * 
 * 
 * cpdef K3sin make_k3sin(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_k3sin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":3495
 *         self.inorm = 1.0 / self.norm
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 */
struct __pyx_opt_args_8pysndlib_10generators_5Izcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3520
 *         self.inorm = 1.0 / self.norm
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 */
struct __pyx_opt_args_8pysndlib_10generators_make_izcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":3558
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 */
struct __pyx_opt_args_8pysndlib_10generators_20AdjustableSquareWave_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3594
 * 
 * 
 * cpdef AdjustableSquareWave make_adjustable_square_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-square-wave generator that produces square-wave
 */
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_square_wave {
  int __pyx_n;
  PyObject *frequency;
  PyObject *duty_factor;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":3636
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
struct __pyx_opt_args_8pysndlib_10generators_22AdjustableTriangleWave_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3670
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-triangle-wave generator that produces a triangle-wave where the
 */
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_triangle_wave {
  int __pyx_n;
  PyObject *frequency;
  PyObject *duty_factor;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":3711
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
struct __pyx_opt_args_8pysndlib_10generators_22AdjustableSawtoothWave_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3746
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_sawtooth_wave {
  int __pyx_n;
  PyObject *frequency;
  PyObject *duty_factor;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":3788
 *             self.scl = 1. / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
struct __pyx_opt_args_8pysndlib_10generators_15AdjustableOscil_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3823
 *             self.scl = 1. / val
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_oscil {
  int __pyx_n;
  PyObject *frequency;
  PyObject *duty_factor;
};

/* "pysndlib/generators.pyx":3886
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_11RoundInterp_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3909
 * 
 * 
 * cpdef RoundInterp make_round_interp(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_round_interp {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":3977
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
struct __pyx_opt_args_8pysndlib_10generators_11Nchoosekcos_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":3988
 * 
 * 
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_nchoosekcos {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":4029
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 */
struct __pyx_opt_args_8pysndlib_10generators_9SincTrain_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4067
 *             self.n = 1 + (2 * val)
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a sinc-train generator with n components
 */
struct __pyx_opt_args_8pysndlib_10generators_make_sinc_train {
  int __pyx_n;
  PyObject *frequency;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4106
 *             self.data[i+1] = random.random()
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 */
struct __pyx_opt_args_8pysndlib_10generators_9PinkNoise_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4127
 *         return self.next(fm)
 * 
 * cpdef PinkNoise make_pink_noise(n=1):             # <<<<<<<<<<<<<<
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_pink_noise {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4158
 *         self.sum = 0
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
struct __pyx_opt_args_8pysndlib_10generators_10BrownNoise_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4169
 * 
 * 
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_brown_noise {
  int __pyx_n;
  PyObject *amplitude;
};

/* "pysndlib/generators.pyx":4205
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
struct __pyx_opt_args_8pysndlib_10generators_10GreenNoise_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4217
 *         return self.next(fm)
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_green_noise {
  int __pyx_n;
  PyObject *amplitude;
  PyObject *low;
  PyObject *high;
};

/* "pysndlib/generators.pyx":4221
 *     return GreenNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next sample in a sequence of bounded brownian noise samples.
 */
struct __pyx_opt_args_8pysndlib_10generators_green_noise {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4254
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 *     cpdef cython.double next(self, cython.double fm = 0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 */
struct __pyx_opt_args_8pysndlib_10generators_16GreenNoiseInterp_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4273
 * 
 * 
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_green_noise_interp {
  int __pyx_n;
  PyObject *amplitude;
  PyObject *low;
  PyObject *high;
};

/* "pysndlib/generators.pyx":4277
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next sample in a sequence of interpolated bounded brownian noise samples.
 */
struct __pyx_opt_args_8pysndlib_10generators_green_noise_interp {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4304
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_9MovingSum_next {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pyx":4311
 * 
 * 
 * cpdef MovingSum make_moving_sum(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_moving_sum {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4346
 * 
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 */
struct __pyx_opt_args_8pysndlib_10generators_14MovingVariance_next {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pyx":4355
 * 
 * 
 * cpdef MovingVariance make_moving_variance(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_moving_variance {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4390
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_9MovingRMS_next {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pyx":4397
 * 
 * 
 * cpdef MovingRMS make_moving_rms(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-rms generator that produces
 */
struct __pyx_opt_args_8pysndlib_10generators_make_moving_rms {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4430
 *         self.gen.mus_increment = 1.0
 * 
 * cpdef MovingLength make_moving_length(n=128):             # <<<<<<<<<<<<<<
 *     """returns a moving-length generator that produces the length
 *     of the values in a window over the last few inputs.
 */
struct __pyx_opt_args_8pysndlib_10generators_make_moving_length {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4467
 *         self.sum = 0.0
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 */
struct __pyx_opt_args_8pysndlib_10generators_21WeightedMovingAverage_next {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pyx":4476
 * 
 * 
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_weighted_moving_average {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4507
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.one_pole(self.gen, insig)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next {
  int __pyx_n;
  double insig;
};

/* "pysndlib/generators.pyx":4514
 * 
 * 
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_exponentially_weighted_moving_average {
  int __pyx_n;
  PyObject *n;
};

/* "pysndlib/generators.pyx":4608
 *         self.frequency = clm.hz2radians(frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_7Tanhsin_next {
  int __pyx_n;
  double fm;
};

/* "pysndlib/generators.pyx":4615
 * 
 * 
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)
 */
struct __pyx_opt_args_8pysndlib_10generators_make_tanhsin {
  int __pyx_n;
  PyObject *frequency;
  PyObject *r;
};

/* "pysndlib/generators.pyx":4709
 *         self.outctr = self.n + 1
 * 
 *     cpdef cython.double next(self, cython.double x=0):             # <<<<<<<<<<<<<<
 *         new_data = False
 *         cdef cython.long i = 0
 */
struct __pyx_opt_args_8pysndlib_10generators_9MovingFFT_next {
  int __pyx_n;
  double x;
};

/* "pysndlib/generators.pyx":4751
 *         self.next()
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 */
struct __pyx_opt_args_8pysndlib_10generators_make_moving_fft {
  int __pyx_n;
  PyObject *n;
  PyObject *hop;
  PyObject *outctr;
};
struct __pyx_defaults {
  PyObject *__pyx_arg_n;
  PyObject *__pyx_arg_hi;
};

/* "pysndlib/clm.pxd":40
 * 
 * 
 * cdef class mus_any:             # <<<<<<<<<<<<<<
 *     """
 *     a wrapper class for mus_any pointers in c
 */
struct __pyx_obj_8pysndlib_3clm_mus_any {
  PyObject_HEAD
  struct __pyx_vtabstruct_8pysndlib_3clm_mus_any *__pyx_vtab;
  mus_any *_ptr;
  int ptr_owner;
  input_cb _inputcallback;
  edit_cb _editcallback;
  analyze_cb _analyzecallback;
  synthesize_cb _synthesizecallback;
  PyObject *_cache;
  mus_float_t *_data_ptr;
  PyArrayObject *_data;
  mus_float_t *_xcoeffs_ptr;
  PyArrayObject *_xcoeffs;
  mus_float_t *_ycoeffs_ptr;
  PyArrayObject *_ycoeffs;
  mus_float_t *_pv_amp_increments_ptr;
  PyArrayObject *_pv_amp_increments;
  mus_float_t *_pv_amps_ptr;
  PyArrayObject *_pv_amps;
  mus_float_t *_pv_freqs_ptr;
  PyArrayObject *_pv_freqs;
  mus_float_t *_pv_phases_ptr;
  PyArrayObject *_pv_phases;
  mus_float_t *_pv_phase_increments_ptr;
  PyArrayObject *_pv_phase_increments;
};


/* "pysndlib/generators.pxd":26
 * np.import_array()
 * 
 * cdef class CLMGenerator:             # <<<<<<<<<<<<<<
 *     cpdef cython.double next(self, cython.double  fm=*)
 * 
 */
struct __pyx_obj_8pysndlib_10generators_CLMGenerator {
  PyObject_HEAD
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator *__pyx_vtab;
};


/* "pysndlib/generators.pxd":30
 * 
 * # --------------- nssb ---------------- #
 * cdef class Nssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":41
 * 
 * # --------------- nxysin ---------------- #
 * cdef class Nxysin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nxysin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":52
 * 
 * # --------------- nxycos ---------------- #
 * cdef class Nxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nxycos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":62
 * 
 * # --------------- nxy1cos ---------------- #
 * cdef class Nxy1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nxy1cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":72
 * 
 * # --------------- nxy1sin ---------------- #
 * cdef class Nxy1sin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nxy1sin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":82
 * 
 * # --------------- Noddcos ---------------- #
 * cdef class Noddcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Noddcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":93
 * 
 * # --------------- noddssb ---------------- #
 * cdef class Noddssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Noddssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":103
 * 
 * # --------------- ncos2 ---------------- #
 * cdef class Ncos2(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_Ncos2 {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":112
 * 
 * # --------------- ncos4 ---------------- #
 * cdef class Ncos4(Ncos2):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_8pysndlib_10generators_Ncos4 {
  struct __pyx_obj_8pysndlib_10generators_Ncos2 __pyx_base;
};


/* "pysndlib/generators.pxd":119
 * 
 * # --------------- npcos ---------------- #
 * cdef class Npcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Npcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":128
 * 
 * # --------------- ncos5 ---------------- #
 * cdef class Ncos5(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Ncos5 {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":139
 * # --------------- nsin5 ---------------- #
 * 
 * cdef class Nsin5(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Nsin5 {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":155
 * #
 * # --------------- nrcos ---------------- #
 * cdef class Nrcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Nrcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double r;
  double angle;
  double rr;
  double r1;
  double e1;
  double e2;
  double norm;
  int trouble;
};


/* "pysndlib/generators.pxd":171
 * 
 * # --------------- nrssb ---------------- #
 * cdef class Nrssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nrssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double n;
  double r;
  double angle;
  double interp;
  double rn;
  double rn1;
  double norm;
};


/* "pysndlib/generators.pxd":188
 * 
 * # --------------- nkssb ---------------- #
 * cdef class Nkssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nkssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double n;
  double angle;
  double norm;
  double interp;
};


/* "pysndlib/generators.pxd":202
 * 
 * # --------------- nsincos ---------------- #
 * cdef class Nsincos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Nsincos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
  double n2;
  double cosn;
  double norm;
};


/* "pysndlib/generators.pxd":215
 * # --------------- n1cos ---------------- #
 * 
 * cdef class N1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_N1cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":225
 * # TODO: --------------- npos1cos ---------------- #
 * 
 * cdef class Npos1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Npos1cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":234
 * 
 * # --------------- npos3cos ---------------- #
 * cdef class Npos3cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Npos3cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double angle;
};


/* "pysndlib/generators.pxd":242
 * # --------------- rcos ---------------- #
 * 
 * cdef class Rcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Rcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
  double r;
  double rr;
  double rrp1;
  double rrm1;
  double r2;
  double norm;
};


/* "pysndlib/generators.pxd":257
 * # --------------- rssb ---------------- #
 * 
 * cdef class Rssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Rssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":272
 * # --------------- rxysin ---------------- #
 * 
 * cdef class Rxysin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Rxysin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
  double rr;
  double r2;
};


/* "pysndlib/generators.pxd":285
 * # --------------- rxycos ---------------- #
 * 
 * cdef class Rxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Rxycos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
  double rr;
  double r2;
  double norm;
};


/* "pysndlib/generators.pxd":300
 * #  --------------- safe-rxycos ---------------- #
 * 
 * cdef class SafeRxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_SafeRxycos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
  double cutoff;
};


/* "pysndlib/generators.pxd":312
 * 
 * # --------------- ercos ---------------- #
 * cdef class Ercos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Ercos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
  double cosh_t;
  double offset;
  double scaler;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":325
 * 
 * # --------------- erssb ---------------- #
 * cdef class Erssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Erssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":340
 * 
 * # --------------- r2cos ---------------- #
 * cdef class R2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_R2cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":350
 * # --------------- r2ssb ---------------- #
 * 
 * cdef class R2ssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_R2ssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":362
 * # --------------- eoddcos ---------------- #
 * 
 * cdef class Eoddcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Eoddcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":373
 * # --------------- rkcos ---------------- #
 * 
 * cdef class Rkcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Rkcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double norm;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":384
 * # --------------- rksin ---------------- #
 * 
 * cdef class Rksin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     cdef public cython.double frequency
 */
struct __pyx_obj_8pysndlib_10generators_Rksin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":395
 * # --------------- rkssb ---------------- #
 * 
 * cdef class Rkssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Rkssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double norm;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":406
 * 
 * # --------------- rk!cos ---------------- #
 * cdef class Rkfcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     cdef public cython.double frequency
 */
struct __pyx_obj_8pysndlib_10generators_Rkfcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":419
 * # --------------- rk!ssb ---------------- #
 * 
 * cdef class Rkfssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Rkfssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":436
 * # --------------- r2k!cos ---------------- #
 * 
 * cdef class R2kfcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_R2kfcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double k;
  double rr1;
  double r2;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
  double norm;
};


/* "pysndlib/generators.pxd":450
 * # --------------- k2sin ---------------- #
 * 
 * cdef class K2sin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double angle
 */
struct __pyx_obj_8pysndlib_10generators_K2sin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double angle;
};


/* "pysndlib/generators.pxd":459
 * # --------------- k2cos ---------------- #
 * 
 * cdef class K2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double angle
 */
struct __pyx_obj_8pysndlib_10generators_K2cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double angle;
};


/* "pysndlib/generators.pxd":468
 * # --------------- k2ssb ---------------- #
 * 
 * cdef class K2ssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_K2ssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double angle;
};


/* "pysndlib/generators.pxd":478
 * # --------------- dblsum ---------------- #
 * 
 * cdef class Dblsum(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Dblsum {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":488
 * 
 * # --------------- rkoddssb ---------------- #
 * cdef class Rkoddssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Rkoddssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double rr1;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":501
 * # --------------- krksin ---------------- #
 * 
 * cdef class Krksin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Krksin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":511
 * # --------------- abssin ---------------- #
 * 
 * cdef class Absin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public clm.mus_any osc
 */
struct __pyx_obj_8pysndlib_10generators_Absin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":520
 * # --------------- abscos ---------------- #
 * 
 * cdef class Abcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double a
 */
struct __pyx_obj_8pysndlib_10generators_Abcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double a;
  double b;
  double angle;
  double ab;
  double norm;
};


/* "pysndlib/generators.pxd":533
 * # --------------- r2k2cos ---------------- #
 * 
 * cdef class R2k2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_R2k2cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":544
 * # --------------- blsaw ---------------- #
 * 
 * cdef class Blsaw(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 */
struct __pyx_obj_8pysndlib_10generators_Blsaw {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double n;
  double r;
  double angle;
};


/* "pysndlib/generators.pxd":556
 * # TODO: add I variant--------------- asyfm ---------------- #
 * 
 * cdef class Asyfm(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Asyfm {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double r;
  double index;
  double angle;
};


/* "pysndlib/generators.pxd":572
 * # --------------- bess ---------------- #
 * 
 * cdef class Bess(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_Bess {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":583
 * 
 * # --------------- jjcos ---------------- #
 * cdef class Jjcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Jjcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double a;
  double k;
  double angle;
};


/* "pysndlib/generators.pxd":594
 * 
 * # --------------- j0evencos ---------------- #
 * cdef class J0evencos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double index
 */
struct __pyx_obj_8pysndlib_10generators_J0evencos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double index;
  double angle;
};


/* "pysndlib/generators.pxd":605
 * 
 * 
 * cdef class J2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_J2cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double r;
  double angle;
  double norm;
};


/* "pysndlib/generators.pxd":618
 * # --------------- jpcos ---------------- #
 * 
 * cdef class Jpcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Jpcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double a;
  double k;
  double angle;
};


/* "pysndlib/generators.pxd":631
 * 
 * # --------------- jncos ---------------- #
 * cdef class Jncos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Jncos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double a;
  int n;
  double angle;
  double ra;
};


/* "pysndlib/generators.pxd":644
 * # --------------- j0j1cos  ---------------- #
 * 
 * cdef class J0j1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double index
 */
struct __pyx_obj_8pysndlib_10generators_J0j1cos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double index;
  double angle;
};


/* "pysndlib/generators.pxd":654
 * # --------------- jycos  ---------------- #
 * 
 * cdef class Jycos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Jycos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double a;
  double angle;
};


/* "pysndlib/generators.pxd":664
 * 
 * # --------------- jcos  ---------------- #
 * cdef class Jcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_Jcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double r;
  double a;
};


/* "pysndlib/generators.pxd":674
 * 
 * # --------------- blackman  ---------------- #
 * cdef class Blackman(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_Blackman {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pxd":685
 * # --------------- fmssb ---------------- #
 * 
 * cdef class Fmssb(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Fmssb {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  double idx;
  double angle;
};


/* "pysndlib/generators.pxd":696
 * # --------------- k3sin  ---------------- #
 * 
 * cdef class K3sin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public np.ndarray coeffs
 */
struct __pyx_obj_8pysndlib_10generators_K3sin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  PyArrayObject *coeffs;
  double angle;
};


/* "pysndlib/generators.pxd":706
 * 
 * # --------------- izcos  ---------------- # #
 * cdef class Izcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Izcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  double angle;
  double dc;
  double norm;
  double inorm;
};


/* "pysndlib/generators.pxd":719
 * # --------------- adjustable-square-wave ---------------- #
 * # Note: modulating the duty factor will not work
 * cdef class AdjustableSquareWave(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 */
struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double duty_factor;
  double amplitude;
  double sum;
  struct __pyx_obj_8pysndlib_3clm_mus_any *p1;
  struct __pyx_obj_8pysndlib_3clm_mus_any *p2;
};


/* "pysndlib/generators.pxd":732
 * # --------------- adjustable-triangle-wave ---------------- #
 * #
 * cdef class AdjustableTriangleWave(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 */
struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double duty_factor;
  double amplitude;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
  double top;
  double mtop;
  double scl;
  double val;
};


/* "pysndlib/generators.pxd":748
 * # --------------- adjustable-sawtooth-wave ---------------- #
 * 
 * cdef class AdjustableSawtoothWave(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 */
struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double duty_factor;
  double amplitude;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
  double top;
  double mtop;
  double scl;
  double val;
};


/* "pysndlib/generators.pxd":763
 * # TODO: --------------- adjustable-oscil-wave ---------------- #
 * 
 * cdef class AdjustableOscil(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 */
struct __pyx_obj_8pysndlib_10generators_AdjustableOscil {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double duty_factor;
  double amplitude;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
  double top;
  double mtop;
  double scl;
  double val;
};


/* "pysndlib/generators.pxd":784
 * 
 * # --------------- round-interp ---------------- #
 * cdef class RoundInterp(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_RoundInterp {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double amplitude;
  struct __pyx_obj_8pysndlib_3clm_mus_any *rnd;
  struct __pyx_obj_8pysndlib_3clm_mus_any *flt;
};


/* "pysndlib/generators.pxd":814
 * 
 * # TODO: This is not working correctly --------------- nchoosekcos ---------------- #
 * cdef class Nchoosekcos(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 */
struct __pyx_obj_8pysndlib_10generators_Nchoosekcos {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double ratio;
  int n;
  double angle;
};


/* "pysndlib/generators.pxd":827
 * # TODO: --------------- sinc-train ---------------- #
 * 
 * cdef class SincTrain(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 */
struct __pyx_obj_8pysndlib_10generators_SincTrain {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  int n;
  double angle;
  double original_n;
  double original_frequency;
};


/* "pysndlib/generators.pxd":838
 * 
 * # --------------- pink-noise ---------------- #
 * cdef class PinkNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public np.ndarray data
 */
struct __pyx_obj_8pysndlib_10generators_PinkNoise {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  PyArrayObject *data;
};


/* "pysndlib/generators.pxd":846
 * 
 * # --------------- brown-noise ---------------- #
 * cdef class BrownNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 */
struct __pyx_obj_8pysndlib_10generators_BrownNoise {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double amplitude;
  double prev;
  double sum;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gr;
};


/* "pysndlib/generators.pxd":858
 * #
 * # --------------- green-noise ---------------- #
 * cdef class GreenNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 */
struct __pyx_obj_8pysndlib_10generators_GreenNoise {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double amplitude;
  double prev;
  double sum;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gr;
  double low;
  double high;
};


/* "pysndlib/generators.pxd":868
 * #
 * # TODO: This is not working properly--------------- green-noise-interp ---------------- #
 * cdef class GreenNoiseInterp(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 */
struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double amplitude;
  double sum;
  double low;
  double high;
  double dv;
  double incr;
  double angle;
};


/* "pysndlib/generators.pxd":882
 * # --------------- moving-sum ---------------- #
 * 
 * cdef class MovingSum(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen
 */
struct __pyx_obj_8pysndlib_10generators_MovingSum {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
};


/* "pysndlib/generators.pxd":891
 * # --------------- moving-variance ---------------- #
 * 
 * cdef class MovingVariance(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen1
 */
struct __pyx_obj_8pysndlib_10generators_MovingVariance {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen1;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen2;
};


/* "pysndlib/generators.pxd":901
 * # --------------- moving-rms ---------------- #
 * 
 * cdef class MovingRMS(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen
 */
struct __pyx_obj_8pysndlib_10generators_MovingRMS {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
};


/* "pysndlib/generators.pxd":910
 * # --------------- moving-length ---------------- #
 * 
 * cdef class MovingLength(MovingRMS):             # <<<<<<<<<<<<<<
 *     pass
 * 
 */
struct __pyx_obj_8pysndlib_10generators_MovingLength {
  struct __pyx_obj_8pysndlib_10generators_MovingRMS __pyx_base;
};


/* "pysndlib/generators.pxd":918
 * # --------------- weighted-moving-average---------------- #
 * 
 * cdef class WeightedMovingAverage(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any dly
 */
struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *dly;
  double num;
  double sum;
  double y;
  double den;
};


/* "pysndlib/generators.pxd":931
 * # --------------- exponentially-weighted-moving-average---------------- #
 * 
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen
 */
struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  int n;
  struct __pyx_obj_8pysndlib_3clm_mus_any *gen;
};


/* "pysndlib/generators.pxd":956
 * 
 * # --------------- tanhsin ---------------- #
 * cdef class Tanhsin(CLMGenerator):             # <<<<<<<<<<<<<<
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 */
struct __pyx_obj_8pysndlib_10generators_Tanhsin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
  double frequency;
  double r;
  struct __pyx_obj_8pysndlib_3clm_mus_any *osc;
};


/* "pysndlib/generators.pyx":363
 * 
 * @cython.cclass
 * cdef class Noddsin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */
struct __pyx_obj_8pysndlib_10generators_Noddsin {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
};


/* "pysndlib/generators.pyx":4688
 * # # # # #     return new_data
 * 
 * cdef class MovingFFT(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 * # NOte float-vector-move!  and np.roll use opposite shift meanings
 */
struct __pyx_obj_8pysndlib_10generators_MovingFFT {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator __pyx_base;
};


/* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max {
  PyObject_HEAD
  PyObject *__pyx_v_find_mid_max;
  PyObject *__pyx_v_find_nodds_mid_max;
  PyObject *__pyx_v_ns;
};


/* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max {
  PyObject_HEAD
  PyObject *__pyx_v_find_mid_max;
};


/* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max {
  PyObject_HEAD
  PyObject *__pyx_v_find_mid_max;
  PyObject *__pyx_v_ns;
};


/* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */
struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env {
  PyObject_HEAD
  PyObject *__pyx_v_e;
  PyObject *__pyx_v_expts;
};


/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):             # <<<<<<<<<<<<<<
 *     def wrap(object y):
 *         """wrap(y) -> float"""
 */
struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y {
  PyObject_HEAD
  double (*__pyx_v_f)(PyObject *);
};



/* "pysndlib/clm.pxd":40
 * 
 * 
 * cdef class mus_any:             # <<<<<<<<<<<<<<
 *     """
 *     a wrapper class for mus_any pointers in c
 */

struct __pyx_vtabstruct_8pysndlib_3clm_mus_any {
  struct __pyx_obj_8pysndlib_3clm_mus_any *(*from_ptr)(mus_any *, struct __pyx_opt_args_8pysndlib_3clm_7mus_any_from_ptr *__pyx_optional_args);
  PyObject *(*cache_append)(struct __pyx_obj_8pysndlib_3clm_mus_any *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*cache_extend)(struct __pyx_obj_8pysndlib_3clm_mus_any *, PyObject *, int __pyx_skip_dispatch);
  PyObject *(*set_up_data)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_7mus_any_set_up_data *__pyx_optional_args);
  PyObject *(*set_up_xcoeffs)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch);
  PyObject *(*set_up_ycoeffs)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch);
  PyObject *(*set_up_pv_data)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch);
  PyObject *(*mus_reset)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch);
  PyObject *(*next)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_7mus_any_next *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_3clm_mus_any *__pyx_vtabptr_8pysndlib_3clm_mus_any;


/* "pysndlib/generators.pyx":21
 * cdef cython.double PI = math.pi
 * 
 * cdef class CLMGenerator:             # <<<<<<<<<<<<<<
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         pass
 */

struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator {
  double (*next)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;


/* "pysndlib/generators.pyx":26
 * 
 * # --------------- nssb ---------------- #
 * cdef class Nssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nssb *__pyx_vtabptr_8pysndlib_10generators_Nssb;


/* "pysndlib/generators.pyx":133
 * 
 * 
 * cdef class Nxysin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nxysin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxysin *__pyx_vtabptr_8pysndlib_10generators_Nxysin;


/* "pysndlib/generators.pyx":192
 * # --------------- nxycos ---------------- #
 * 
 * cdef class Nxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nxycos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxycos *__pyx_vtabptr_8pysndlib_10generators_Nxycos;


/* "pysndlib/generators.pyx":241
 * # --------------- nxy1cos ---------------- #
 * 
 * cdef class Nxy1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1cos *__pyx_vtabptr_8pysndlib_10generators_Nxy1cos;


/* "pysndlib/generators.pyx":295
 * # --------------- nxy1sin ---------------- #
 * 
 * cdef class Nxy1sin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1sin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1sin *__pyx_vtabptr_8pysndlib_10generators_Nxy1sin;


/* "pysndlib/generators.pyx":422
 * # --------------- noddcos ---------------- #
 * 
 * cdef class Noddcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Noddcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddcos *__pyx_vtabptr_8pysndlib_10generators_Noddcos;


/* "pysndlib/generators.pyx":479
 * # --------------- noddssb ---------------- #
 * 
 * cdef class Noddssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Noddssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddssb *__pyx_vtabptr_8pysndlib_10generators_Noddssb;


/* "pysndlib/generators.pyx":537
 * 
 * 
 * cdef class Ncos2(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 *__pyx_vtabptr_8pysndlib_10generators_Ncos2;


/* "pysndlib/generators.pyx":589
 * # --------------- ncos4 ---------------- #
 * 
 * cdef class Ncos4(Ncos2):             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Ncos4 {
  struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos4 *__pyx_vtabptr_8pysndlib_10generators_Ncos4;


/* "pysndlib/generators.pyx":625
 * # --------------- npcos ---------------- #
 * 
 * cdef class Npcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Npcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Npcos *__pyx_vtabptr_8pysndlib_10generators_Npcos;


/* "pysndlib/generators.pyx":687
 * 
 * 
 * cdef class Ncos5(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Ncos5 {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos5 *__pyx_vtabptr_8pysndlib_10generators_Ncos5;


/* "pysndlib/generators.pyx":763
 * 
 * 
 * cdef class Nsin5(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nsin5 {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nsin5 *__pyx_vtabptr_8pysndlib_10generators_Nsin5;


/* "pysndlib/generators.pyx":830
 * # --------------- nrcos ---------------- #
 * 
 * cdef class Nrcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nrcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nrcos *__pyx_vtabptr_8pysndlib_10generators_Nrcos;


/* "pysndlib/generators.pyx":922
 * # --------------- nrssb ---------------- #
 * 
 * cdef class Nrssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  PyObject *(*call_interp)(struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb *__pyx_vtabptr_8pysndlib_10generators_Nrssb;


/* "pysndlib/generators.pyx":1002
 * # --------------- nkssb ---------------- #
 * 
 * cdef class Nkssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 * 
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  double (*call_interp)(struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb *__pyx_vtabptr_8pysndlib_10generators_Nkssb;


/* "pysndlib/generators.pyx":1100
 * # --------------- nsincos ---------------- #
 * 
 * cdef class Nsincos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nsincos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nsincos *__pyx_vtabptr_8pysndlib_10generators_Nsincos;


/* "pysndlib/generators.pyx":1148
 * # --------------- n1cos ---------------- #
 * 
 * cdef class N1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_N1cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_N1cos *__pyx_vtabptr_8pysndlib_10generators_N1cos;


/* "pysndlib/generators.pyx":1193
 * # --------------- npos1cos ---------------- #
 * 
 * cdef class Npos1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Npos1cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Npos1cos *__pyx_vtabptr_8pysndlib_10generators_Npos1cos;


/* "pysndlib/generators.pyx":1245
 * # --------------- npos3cos ---------------- #
 * 
 * cdef class Npos3cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Npos3cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Npos3cos *__pyx_vtabptr_8pysndlib_10generators_Npos3cos;


/* "pysndlib/generators.pyx":1293
 * # --------------- rcos ---------------- #
 * 
 * cdef class Rcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rcos *__pyx_vtabptr_8pysndlib_10generators_Rcos;


/* "pysndlib/generators.pyx":1365
 * # --------------- rssb ---------------- #
 * 
 * cdef class Rssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  double (*call_interp)(struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rssb *__pyx_vtabptr_8pysndlib_10generators_Rssb;


/* "pysndlib/generators.pyx":1444
 * # --------------- rxysin ---------------- #
 * 
 * cdef class Rxysin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rxysin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rxysin *__pyx_vtabptr_8pysndlib_10generators_Rxysin;


/* "pysndlib/generators.pyx":1504
 * # --------------- rxycos ---------------- #
 * 
 * cdef class Rxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rxycos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rxycos *__pyx_vtabptr_8pysndlib_10generators_Rxycos;


/* "pysndlib/generators.pyx":1564
 * # --------------- safe-rxycos ---------------- #
 * 
 * cdef class SafeRxycos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  PyObject *(*clamp_rxycos_r)(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *__pyx_vtabptr_8pysndlib_10generators_SafeRxycos;


/* "pysndlib/generators.pyx":1654
 * # --------------- ercos ---------------- #
 * 
 * cdef class Ercos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Ercos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Ercos *__pyx_vtabptr_8pysndlib_10generators_Ercos;


/* "pysndlib/generators.pyx":1717
 * # --------------- erssb ---------------- #
 * 
 * cdef class Erssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Erssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Erssb *__pyx_vtabptr_8pysndlib_10generators_Erssb;


/* "pysndlib/generators.pyx":1778
 * 
 * # --------------- r2cos ---------------- #
 * cdef class R2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_R2cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_R2cos *__pyx_vtabptr_8pysndlib_10generators_R2cos;


/* "pysndlib/generators.pyx":1825
 * # --------------- r2ssb ---------------- #
 * 
 * cdef class R2ssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_R2ssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_R2ssb *__pyx_vtabptr_8pysndlib_10generators_R2ssb;


/* "pysndlib/generators.pyx":1874
 * # --------------- eoddcos ---------------- #
 * 
 * cdef class Eoddcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=1.):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Eoddcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Eoddcos *__pyx_vtabptr_8pysndlib_10generators_Eoddcos;


/* "pysndlib/generators.pyx":1940
 * # --------------- rkcos ---------------- #
 * 
 * cdef class Rkcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rkcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkcos *__pyx_vtabptr_8pysndlib_10generators_Rkcos;


/* "pysndlib/generators.pyx":2008
 * 
 * # --------------- rksin ---------------- #
 * cdef class Rksin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rksin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rksin *__pyx_vtabptr_8pysndlib_10generators_Rksin;


/* "pysndlib/generators.pyx":2062
 * # --------------- rkssb ---------------- #
 * 
 * cdef class Rkssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rkssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkssb *__pyx_vtabptr_8pysndlib_10generators_Rkssb;


/* "pysndlib/generators.pyx":2122
 * # --------------- rk!cos ---------------- #
 * 
 * cdef class Rkfcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rkfcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkfcos *__pyx_vtabptr_8pysndlib_10generators_Rkfcos;


/* "pysndlib/generators.pyx":2188
 * # --------------- rk!ssb ---------------- #
 * 
 * cdef class Rkfssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, r=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rkfssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkfssb *__pyx_vtabptr_8pysndlib_10generators_Rkfssb;


/* "pysndlib/generators.pyx":2250
 * # --------------- rxyk!cos---------------- #
 * 
 * cdef class R2kfcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5, k=0.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_R2kfcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_R2kfcos *__pyx_vtabptr_8pysndlib_10generators_R2kfcos;


/* "pysndlib/generators.pyx":2320
 * # --------------- k2sin ---------------- #
 * 
 * cdef class K2sin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_K2sin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_K2sin *__pyx_vtabptr_8pysndlib_10generators_K2sin;


/* "pysndlib/generators.pyx":2365
 * # --------------- k2cos ---------------- #
 * 
 * cdef class K2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_K2cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_K2cos *__pyx_vtabptr_8pysndlib_10generators_K2cos;


/* "pysndlib/generators.pyx":2406
 * 
 * # --------------- k2ssb ---------------- #
 * cdef class K2ssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_K2ssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_K2ssb *__pyx_vtabptr_8pysndlib_10generators_K2ssb;


/* "pysndlib/generators.pyx":2453
 * 
 * # --------------- dblsum ---------------- #
 * cdef class Dblsum(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Dblsum {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Dblsum *__pyx_vtabptr_8pysndlib_10generators_Dblsum;


/* "pysndlib/generators.pyx":2506
 * # --------------- rkoddssb ---------------- #
 * 
 * cdef class Rkoddssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Rkoddssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkoddssb *__pyx_vtabptr_8pysndlib_10generators_Rkoddssb;


/* "pysndlib/generators.pyx":2566
 * 
 * # --------------- krksin ---------------- #
 * cdef class Krksin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Krksin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Krksin *__pyx_vtabptr_8pysndlib_10generators_Krksin;


/* "pysndlib/generators.pyx":2613
 * # --------------- absin ---------------- #
 * # In generators.scm this is called abssin but in docs it is absin
 * cdef class Absin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Absin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Absin *__pyx_vtabptr_8pysndlib_10generators_Absin;


/* "pysndlib/generators.pyx":2669
 * 
 * 
 * cdef class Abcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, a=.5, b=.25):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Abcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Abcos *__pyx_vtabptr_8pysndlib_10generators_Abcos;


/* "pysndlib/generators.pyx":2714
 * # --------------- r2k2cos ---------------- #
 * 
 * cdef class R2k2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  double (*r2k2cos_norm)(struct __pyx_obj_8pysndlib_10generators_R2k2cos *, double);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos *__pyx_vtabptr_8pysndlib_10generators_R2k2cos;


/* "pysndlib/generators.pyx":2765
 * # --------------- blsaw ---------------- #
 * 
 * cdef class Blsaw(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1, r=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Blsaw {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Blsaw *__pyx_vtabptr_8pysndlib_10generators_Blsaw;


/* "pysndlib/generators.pyx":2820
 * # --------------- asyfm ---------------- #
 * 
 * cdef class Asyfm(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., r=1., index=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  double (*next_i)(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i *__pyx_optional_args);
  double (*next_j)(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j *__pyx_optional_args);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *__pyx_vtabptr_8pysndlib_10generators_Asyfm;


/* "pysndlib/generators.pyx":2899
 * 
 * # --------------- bess ---------------- #
 * cdef class Bess(CLMGenerator):             # <<<<<<<<<<<<<<
 *     bessel_peaks = [1.000,0.582,0.487,0.435,0.400,0.375,0.355,0.338,0.325,0.313,0.303,0.294,0.286,0.279,0.273,0.267,0.262,0.257,0.252,0.248]
 * 
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Bess {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Bess *__pyx_vtabptr_8pysndlib_10generators_Bess;


/* "pysndlib/generators.pyx":2946
 * # --------------- jjcos ---------------- #
 * 
 * cdef class Jjcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5, a=1., k=1.):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Jjcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Jjcos *__pyx_vtabptr_8pysndlib_10generators_Jjcos;


/* "pysndlib/generators.pyx":2994
 * # --------------- j0evencos ---------------- #
 * 
 * cdef class J0evencos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, index=1.):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_J0evencos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_J0evencos *__pyx_vtabptr_8pysndlib_10generators_J0evencos;


/* "pysndlib/generators.pyx":3043
 * # --------------- j2cos ---------------- #
 * 
 * cdef class J2cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_J2cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_J2cos *__pyx_vtabptr_8pysndlib_10generators_J2cos;


/* "pysndlib/generators.pyx":3090
 * # --------------- jpcos ---------------- #
 * 
 * cdef class Jpcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5, a=0.0, k=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Jpcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Jpcos *__pyx_vtabptr_8pysndlib_10generators_Jpcos;


/* "pysndlib/generators.pyx":3139
 * # --------------- jncos ---------------- #
 * 
 * cdef class Jncos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=.5, a=1.0, n=0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Jncos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Jncos *__pyx_vtabptr_8pysndlib_10generators_Jncos;


/* "pysndlib/generators.pyx":3187
 * # --------------- j0j1cos  ---------------- #
 * 
 * cdef class J0j1cos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency,index=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_J0j1cos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_J0j1cos *__pyx_vtabptr_8pysndlib_10generators_J0j1cos;


/* "pysndlib/generators.pyx":3233
 * # --------------- jycos  ---------------- #
 * 
 * cdef class Jycos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency,r=1.0, a=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Jycos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Jycos *__pyx_vtabptr_8pysndlib_10generators_Jycos;


/* "pysndlib/generators.pyx":3286
 * 
 * # --------------- jcos  ---------------- #
 * cdef class Jcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency,n=0, r=1.0, a=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Jcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Jcos *__pyx_vtabptr_8pysndlib_10generators_Jcos;


/* "pysndlib/generators.pyx":3333
 * # --------------- blackman  ---------------- #
 * 
 * cdef class Blackman(CLMGenerator):             # <<<<<<<<<<<<<<
 *     blackman_coeffs = [[0,0], [0,0.54,1,-0.46], [0,0.42323,1,-0.49755,2,0.078279],[0,0.35875,1,0.48829,2,0.14128,3,-0.01168],
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Blackman {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  PyObject *(*mus_reset)(struct __pyx_obj_8pysndlib_10generators_Blackman *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Blackman *__pyx_vtabptr_8pysndlib_10generators_Blackman;


/* "pysndlib/generators.pyx":3383
 * 
 * @cython.cclass
 * cdef class Fmssb(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, index=1.):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Fmssb {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Fmssb *__pyx_vtabptr_8pysndlib_10generators_Fmssb;


/* "pysndlib/generators.pyx":3436
 * 
 * # --------------- k3sin  ---------------- #
 * cdef class K3sin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_K3sin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_K3sin *__pyx_vtabptr_8pysndlib_10generators_K3sin;


/* "pysndlib/generators.pyx":3485
 * # --------------- izcos  ---------------- #
 * 
 * cdef class Izcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Izcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Izcos *__pyx_vtabptr_8pysndlib_10generators_Izcos;


/* "pysndlib/generators.pyx":3548
 * # --------------- adjustable-square-wave ---------------- #
 * 
 * cdef class AdjustableSquareWave(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSquareWave {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSquareWave *__pyx_vtabptr_8pysndlib_10generators_AdjustableSquareWave;


/* "pysndlib/generators.pyx":3623
 * # --------------- adjustable-triangle-wave ---------------- #
 * 
 * cdef class AdjustableTriangleWave(CLMGenerator):             # <<<<<<<<<<<<<<
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency
 */

struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableTriangleWave {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableTriangleWave *__pyx_vtabptr_8pysndlib_10generators_AdjustableTriangleWave;


/* "pysndlib/generators.pyx":3697
 * 
 * # --------------- adjustable-sawtooth-wave ---------------- #
 * cdef class AdjustableSawtoothWave(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSawtoothWave {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_vtabptr_8pysndlib_10generators_AdjustableSawtoothWave;


/* "pysndlib/generators.pyx":3775
 * # #
 * # --------------- adjustable-oscil-wave ---------------- #
 * cdef class AdjustableOscil(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, duty_factor=.5):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableOscil {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableOscil *__pyx_vtabptr_8pysndlib_10generators_AdjustableOscil;


/* "pysndlib/generators.pyx":3876
 * 
 * # --------------- round-interp ---------------- #
 * cdef class RoundInterp(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1, amplitude=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_RoundInterp {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_RoundInterp *__pyx_vtabptr_8pysndlib_10generators_RoundInterp;


/* "pysndlib/generators.pyx":3970
 * 
 * # TODO: This is not working correctly--------------- nchoosekcos ---------------- #
 * cdef class Nchoosekcos(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Nchoosekcos {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Nchoosekcos *__pyx_vtabptr_8pysndlib_10generators_Nchoosekcos;


/* "pysndlib/generators.pyx":4013
 * # --------------- sinc-train ---------------- #
 * 
 * cdef class SincTrain(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_SincTrain {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_SincTrain *__pyx_vtabptr_8pysndlib_10generators_SincTrain;


/* "pysndlib/generators.pyx":4095
 * # --------------- pink-noise ---------------- #
 * 
 * cdef class PinkNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_PinkNoise {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_PinkNoise *__pyx_vtabptr_8pysndlib_10generators_PinkNoise;


/* "pysndlib/generators.pyx":4151
 * 
 * # --------------- brown-noise ---------------- #
 * cdef class BrownNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, amplitude=1.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_BrownNoise {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_BrownNoise *__pyx_vtabptr_8pysndlib_10generators_BrownNoise;


/* "pysndlib/generators.pyx":4194
 * # --------------- green-noise ---------------- #
 * 
 * cdef class GreenNoise(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoise {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoise *__pyx_vtabptr_8pysndlib_10generators_GreenNoise;


/* "pysndlib/generators.pyx":4242
 * 
 * # TODO: This is not working properly --------------- green-noise-interp ---------------- #
 * cdef class GreenNoiseInterp(CLMGenerator):             # <<<<<<<<<<<<<<
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 *         self.low = low
 */

struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoiseInterp {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoiseInterp *__pyx_vtabptr_8pysndlib_10generators_GreenNoiseInterp;


/* "pysndlib/generators.pyx":4298
 * # --------------- moving-sum ---------------- #
 * 
 * cdef class MovingSum(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n=128):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_MovingSum {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingSum *__pyx_vtabptr_8pysndlib_10generators_MovingSum;


/* "pysndlib/generators.pyx":4337
 * # --------------- moving-variance ---------------- #
 * 
 * cdef class MovingVariance(CLMGenerator):             # <<<<<<<<<<<<<<
 *     def __init__(self, n=128):
 *         self.n = n
 */

struct __pyx_vtabstruct_8pysndlib_10generators_MovingVariance {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingVariance *__pyx_vtabptr_8pysndlib_10generators_MovingVariance;


/* "pysndlib/generators.pyx":4384
 * # --------------- moving-rms ---------------- #
 * 
 * cdef class MovingRMS(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n=128):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS *__pyx_vtabptr_8pysndlib_10generators_MovingRMS;


/* "pysndlib/generators.pyx":4424
 * 
 * # --------------- moving-length ---------------- #
 * cdef class MovingLength(MovingRMS):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n=128):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_MovingLength {
  struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingLength *__pyx_vtabptr_8pysndlib_10generators_MovingLength;


/* "pysndlib/generators.pyx":4457
 * 
 * # --------------- weighted-moving-average ---------------- #
 * cdef class WeightedMovingAverage(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n=128):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_WeightedMovingAverage {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_WeightedMovingAverage *__pyx_vtabptr_8pysndlib_10generators_WeightedMovingAverage;


/* "pysndlib/generators.pyx":4501
 * 
 * # --------------- exponentially-weighted-moving-average ---------------- #
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, n=128):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_ExponentiallyWeightedMovingAverage {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_vtabptr_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;


/* "pysndlib/generators.pyx":4600
 * # --------------- tanhsin ---------------- #
 * 
 * cdef class Tanhsin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, r=1.0,initial_phase=0.0):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Tanhsin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Tanhsin *__pyx_vtabptr_8pysndlib_10generators_Tanhsin;


/* "pysndlib/generators.pyx":363
 * 
 * @cython.cclass
 * cdef class Noddsin(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 */

struct __pyx_vtabstruct_8pysndlib_10generators_Noddsin {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
};
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddsin *__pyx_vtabptr_8pysndlib_10generators_Noddsin;


/* "pysndlib/generators.pyx":4688
 * # # # # #     return new_data
 * 
 * cdef class MovingFFT(CLMGenerator):             # <<<<<<<<<<<<<<
 * 
 * # NOte float-vector-move!  and np.roll use opposite shift meanings
 */

struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT {
  struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_base;
  PyObject *(*mus_run)(struct __pyx_obj_8pysndlib_10generators_MovingFFT *, PyObject *, PyObject *, int __pyx_skip_dispatch);
};
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT *__pyx_vtabptr_8pysndlib_10generators_MovingFFT;
/* #### Code section: utility_code_proto ### */

/* --- Runtime support code (head) --- */
/* Refnanny.proto */
#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, Py_ssize_t);
    void (*DECREF)(void*, PyObject*, Py_ssize_t);
    void (*GOTREF)(void*, PyObject*, Py_ssize_t);
    void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
    void* (*SetupContext)(const char*, Py_ssize_t, 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__));\
          }
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil)\
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
  #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
#endif
  #define __Pyx_RefNannyFinishContextNogil() {\
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
              __Pyx_RefNannyFinishContext();\
              PyGILState_Release(__pyx_gilstate_save);\
          }
  #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); else {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContextNogil()
  #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_Py_XDECREF_SET(r, v) do {\
        PyObject *tmp = (PyObject *) r;\
        r = v; Py_XDECREF(tmp);\
    } while (0)
#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)

/* 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

/* PyThreadStateGet.proto */
#if CYTHON_FAST_THREAD_STATE
#define __Pyx_PyThreadState_declare  PyThreadState *__pyx_tstate;
#define __Pyx_PyThreadState_assign  __pyx_tstate = __Pyx_PyThreadState_Current;
#if PY_VERSION_HEX >= 0x030C00A6
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->current_exception != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
#else
#define __Pyx_PyErr_Occurred()  (__pyx_tstate->curexc_type != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  (__pyx_tstate->curexc_type)
#endif
#else
#define __Pyx_PyThreadState_declare
#define __Pyx_PyThreadState_assign
#define __Pyx_PyErr_Occurred()  (PyErr_Occurred() != NULL)
#define __Pyx_PyErr_CurrentExceptionType()  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 && PY_VERSION_HEX < 0x030C00A6
#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

/* 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

/* PyObjectGetAttrStrNoError.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);

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

/* IncludeStringH.proto */
#include <string.h>

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

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

/* GetTopmostException.proto */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
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

/* 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

/* ImportDottedModule.proto */
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);
#endif

/* PyFunctionFastCall.proto */
#if CYTHON_FAST_PYCALL
#if !CYTHON_VECTORCALL
#define __Pyx_PyFunction_FastCall(func, args, nargs)\
    __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
#endif
#define __Pyx_BUILD_ASSERT_EXPR(cond)\
    (sizeof(char [1 - 2*!(cond)]) - 1)
#ifndef Py_MEMBER_SIZE
#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
#endif
#if !CYTHON_VECTORCALL
#if PY_VERSION_HEX >= 0x03080000
  #include "frameobject.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
  #define __Pxy_PyFrame_Initialize_Offsets()
  #define __Pyx_PyFrame_GetLocalsplus(frame)  ((frame)->f_localsplus)
#else
  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
#endif
#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

/* PyObjectFastCall.proto */
#define __Pyx_PyObject_FastCall(func, args, nargs)  __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);

/* TupleAndListFromArray.proto */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
#endif

/* BytesEquals.proto */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

/* UnicodeEquals.proto */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

/* fastcall.proto */
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
#elif CYTHON_ASSUME_SAFE_MACROS
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
#else
    #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
#endif
#if CYTHON_AVOID_BORROWED_REFS
    #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
    #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
#else
    #define __Pyx_Arg_NewRef_VARARGS(arg) arg
    #define __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
#define __Pyx_KwValues_VARARGS(args, nargs) NULL
#define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
#define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
#if CYTHON_METH_FASTCALL
    #define __Pyx_Arg_FASTCALL(args, i) args[i]
    #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
    #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
    static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
    CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
  #else
    #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
  #endif
    #define __Pyx_Arg_NewRef_FASTCALL(arg) arg  /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
                                                   to have the same reference counting */
    #define __Pyx_Arg_XDECREF_FASTCALL(arg)
#else
    #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
    #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
    #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
    #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
    #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
    #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
    #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
#endif
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
#else
#define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
#define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
#endif

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

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

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

/* IncludeStructmemberH.proto */
#include <structmember.h>

/* FixUpExtensionType.proto */
#if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
#endif

/* FetchSharedCythonModule.proto */
static PyObject *__Pyx_FetchSharedCythonABIModule(void);

/* FetchCommonType.proto */
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
#else
static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
#endif

/* PyMethodNew.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    typesModule = PyImport_ImportModule("types");
    if (!typesModule) return NULL;
    methodType = PyObject_GetAttrString(typesModule, "MethodType");
    Py_DECREF(typesModule);
    if (!methodType) return NULL;
    result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
    Py_DECREF(methodType);
    return result;
}
#elif PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
    CYTHON_UNUSED_VAR(typ);
    if (!self)
        return __Pyx_NewRef(func);
    return PyMethod_New(func, self);
}
#else
    #define __Pyx_PyMethod_New PyMethod_New
#endif

/* PyVectorcallFastCallDict.proto */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
#endif

/* CythonFunctionShared.proto */
#define __Pyx_CyFunction_USED
#define __Pyx_CYFUNCTION_STATICMETHOD  0x01
#define __Pyx_CYFUNCTION_CLASSMETHOD   0x02
#define __Pyx_CYFUNCTION_CCLASS        0x04
#define __Pyx_CYFUNCTION_COROUTINE     0x08
#define __Pyx_CyFunction_GetClosure(f)\
    (((__pyx_CyFunctionObject *) (f))->func_closure)
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
  #define __Pyx_CyFunction_GetClassObj(f)\
      (((__pyx_CyFunctionObject *) (f))->func_classobj)
#else
  #define __Pyx_CyFunction_GetClassObj(f)\
      ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
#endif
#define __Pyx_CyFunction_SetClassObj(f, classobj)\
    __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (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 {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject_HEAD
    PyObject *func;
#elif PY_VERSION_HEX < 0x030900B1
    PyCFunctionObject func;
#else
    PyCMethodObject func;
#endif
#if CYTHON_BACKPORT_VECTORCALL
    __pyx_vectorcallfunc func_vectorcall;
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    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;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    PyObject *func_classobj;
#endif
    void *defaults;
    int defaults_pyobjects;
    size_t defaults_size;
    int flags;
    PyObject *defaults_tuple;
    PyObject *defaults_kwdict;
    PyObject *(*defaults_getter)(PyObject *);
    PyObject *func_annotations;
    PyObject *func_is_coroutine;
} __pyx_CyFunctionObject;
#undef __Pyx_CyOrPyCFunction_Check
#define __Pyx_CyFunction_Check(obj)  __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
#define __Pyx_CyOrPyCFunction_Check(obj)  __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
#define __Pyx_CyFunction_CheckExact(obj)  __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
#undef __Pyx_IsSameCFunction
#define __Pyx_IsSameCFunction(func, cfunc)   __Pyx__IsSameCyOrCFunction(func, cfunc)
static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
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(PyObject *module);
#if CYTHON_METH_FASTCALL
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
#if CYTHON_BACKPORT_VECTORCALL
#define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
#else
#define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
#endif
#endif

/* CythonFunction.proto */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
                                      int flags, PyObject* qualname,
                                      PyObject *closure,
                                      PyObject *module, PyObject *globals,
                                      PyObject* code);

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

/* 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

/* KeywordStringCheck.proto */
static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed);

/* GetAttr3.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);

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

/* RaiseUnexpectedTypeError.proto */
static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);

/* ArgTypeTest.proto */
#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
    ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
        __Pyx__ArgTypeTest(obj, type, name, exact))
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static int __Pyx_PyFloat_BoolEqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_BoolEqObjC(op1, op2, floatval, inplace, zerodivision_check)\
    __Pyx_PyObject_IsTrueAndDecref(PyObject_RichCompare(op1, op2, Py_EQ))
    #endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_TrueDivideObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddCObj(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* RaiseClosureNameError.proto */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname);

/* PyIntCompare.proto */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace);

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_AddObjC(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_MultiplyCObj(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_TrueDivideCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_TrueDivideCObj(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceTrueDivide(op1, op2) : PyNumber_TrueDivide(op1, op2))
#endif

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

/* PyObjectSetAttrStr.proto */
#if CYTHON_USE_TYPE_SLOTS
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value);
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

/* 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);

/* ObjectGetItem.proto */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
#else
#define __Pyx_PyObject_GetItem(obj, key)  PyObject_GetItem(obj, key)
#endif

/* ModFloat[double].proto */
static CYTHON_INLINE double __Pyx_mod_double(double, double);

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_SubtractObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_SubtractObjC(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_SubtractCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_SubtractCObj(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

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

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_SubtractObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* PyFloatBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyFloat_AddCObj(op1, op2, floatval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2))
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_SubtractCObj(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceSubtract(op1, op2) : PyNumber_Subtract(op1, op2))
#endif

/* 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

/* SoftComplexToDouble.proto */
static double __Pyx_SoftComplexToDouble(__pyx_t_double_complex value, int have_gil);

/* PyObjectFormatSimple.proto */
#if CYTHON_COMPILING_IN_PYPY
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#elif PY_MAJOR_VERSION < 3
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\
        PyObject_Format(s, f))
#elif CYTHON_USE_TYPE_SLOTS
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
        likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
        PyObject_Format(s, f))
#else
    #define __Pyx_PyObject_FormatSimple(s, f) (\
        likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
        PyObject_Format(s, f))
#endif

/* JoinPyUnicode.proto */
static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char);

/* 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);

/* PySequenceContains.proto */
static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
    int result = PySequence_Contains(seq, item);
    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
}

/* GetAttr.proto */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);

/* HasAttr.proto */
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
#define __Pyx_HasAttr(o, n)  PyObject_HasAttrWithError(o, n)
#else
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
#endif

/* CallNextTpTraverse.proto */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse);

/* CallNextTpClear.proto */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear);

/* PyObjectCallNoArg.proto */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);

/* 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);

/* ValidateBasesTuple.proto */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
#endif

/* PyType_Ready.proto */
CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);

/* PyObject_GenericGetAttrNoDict.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
#endif

/* PyObject_GenericGetAttr.proto */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
#else
#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
#endif

/* SetVTable.proto */
static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);

/* GetVTable.proto */
static void* __Pyx_GetVtable(PyTypeObject *type);

/* MergeVTables.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type);
#endif

/* SetupReduce.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce(PyObject* type_obj);
#endif

/* TypeImport.proto */
#ifndef __PYX_HAVE_RT_ImportType_proto_3_0_8
#define __PYX_HAVE_RT_ImportType_proto_3_0_8
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#include <stdalign.h>
#endif
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_8(s) alignof(s)
#else
#define __PYX_GET_STRUCT_ALIGNMENT_3_0_8(s) sizeof(void*)
#endif
enum __Pyx_ImportType_CheckSize_3_0_8 {
   __Pyx_ImportType_CheckSize_Error_3_0_8 = 0,
   __Pyx_ImportType_CheckSize_Warn_3_0_8 = 1,
   __Pyx_ImportType_CheckSize_Ignore_3_0_8 = 2
};
static PyTypeObject *__Pyx_ImportType_3_0_8(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_8 check_size);
#endif

/* PyIntBinop.proto */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check);
#else
#define __Pyx_PyInt_MultiplyObjC(op1, op2, intval, inplace, zerodivision_check)\
    (inplace ? PyNumber_InPlaceMultiply(op1, op2) : PyNumber_Multiply(op1, op2))
#endif

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

/* CodeObjectCache.proto */
#if !CYTHON_COMPILING_IN_LIMITED_API
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);
#endif

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

/* GCCDiagnostics.proto */
#if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
#define __Pyx_HAS_GCC_DIAGNOSTIC
#endif

/* Arithmetic.proto */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
    #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 && (1) && (!0 || __cplusplus)
    #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

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

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

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

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

/* SoftComplexToPy.proto */
static PyObject *__pyx_Py_FromSoftComplex(__pyx_t_double_complex value);

/* FormatTypeName.proto */
#if CYTHON_COMPILING_IN_LIMITED_API
typedef PyObject *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%U"
static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
#define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
#else
typedef const char *__Pyx_TypeName;
#define __Pyx_FMT_TYPENAME "%.200s"
#define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
#define __Pyx_DECREF_TypeName(obj)
#endif

/* FastTypeChecks.proto */
#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
#define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, 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_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
#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_PyErr_ExceptionMatches2(err1, err2)  __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)

/* CheckBinaryVersion.proto */
static unsigned long __Pyx_get_runtime_version(void);
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);

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

/* FunctionImport.proto */
static int __Pyx_ImportFunction_3_0_8(PyObject *module, const char *funcname, void (**f)(void), const char *sig);

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

/* #### Code section: module_declarations ### */
static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/
static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/
static double __pyx_f_8pysndlib_10generators_12CLMGenerator_next(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Nssb_next(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Nssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Nxysin_next(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Nxysin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Nxycos_next(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Nxycos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Nxy1cos_next(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nxy1cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Nxy1sin_next(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nxy1sin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Noddsin_next(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddsin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Noddcos_next(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Noddssb_next(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos2_next(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos2_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos4_next(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos4_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Npcos_next(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Npcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos5_next(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos5_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Nsin5_next(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nsin5_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Nrcos_next(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Nrssb_next(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_next *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_8pysndlib_10generators_5Nrssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Nkssb_next(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Nkssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Nsincos_next(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nsincos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5N1cos_next(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5N1cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_8Npos1cos_next(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Npos1cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_8Npos3cos_next(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Npos3cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Rcos_next(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Rssb_next(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Rssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Rxysin_next(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rxysin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Rxycos_next(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rxycos_next *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_10SafeRxycos_next(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Ercos_next(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ercos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Erssb_next(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Erssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5R2cos_next(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5R2cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5R2ssb_next(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5R2ssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Eoddcos_next(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Eoddcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Rkcos_next(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rkcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Rksin_next(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rksin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Rkssb_next(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rkssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Rkfcos_next(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rkfcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Rkfssb_next(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rkfssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7R2kfcos_next(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7R2kfcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5K2sin_next(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2sin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5K2cos_next(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5K2ssb_next(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2ssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Dblsum_next(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Dblsum_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_8Rkoddssb_next(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Rkoddssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_6Krksin_next(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Krksin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Absin_next(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Absin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Abcos_next(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Abcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7R2k2cos_r2k2cos_norm(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_a); /* proto*/
static double __pyx_f_8pysndlib_10generators_7R2k2cos_next(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7R2k2cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Blsaw_next(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Blsaw_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Bess_next(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Bess_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Jjcos_next(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jjcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9J0evencos_next(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9J0evencos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5J2cos_next(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5J2cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Jpcos_next(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jpcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Jncos_next(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jncos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7J0j1cos_next(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7J0j1cos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Jycos_next(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jycos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_4Jcos_next(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Jcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_8Blackman_next(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Blackman_next *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_8pysndlib_10generators_8Blackman_mus_reset(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, int __pyx_skip_dispatch); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Fmssb_next(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Fmssb_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5K3sin_next(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K3sin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_5Izcos_next(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Izcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_20AdjustableSquareWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_20AdjustableSquareWave_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_22AdjustableTriangleWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_22AdjustableTriangleWave_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_22AdjustableSawtoothWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_22AdjustableSawtoothWave_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_15AdjustableOscil_next(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_15AdjustableOscil_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_11RoundInterp_next(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_11RoundInterp_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_11Nchoosekcos_next(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_11Nchoosekcos_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9SincTrain_next(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9SincTrain_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9PinkNoise_next(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9PinkNoise_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_10BrownNoise_next(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10BrownNoise_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_10GreenNoise_next(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10GreenNoise_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_16GreenNoiseInterp_next(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_16GreenNoiseInterp_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9MovingSum_next(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingSum_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_14MovingVariance_next(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_14MovingVariance_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9MovingRMS_next(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingRMS_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_21WeightedMovingAverage_next(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_21WeightedMovingAverage_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_7Tanhsin_next(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Tanhsin_next *__pyx_optional_args); /* proto*/
static double __pyx_f_8pysndlib_10generators_9MovingFFT_next(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingFFT_next *__pyx_optional_args); /* proto*/
static PyObject *__pyx_f_8pysndlib_10generators_9MovingFFT_mus_run(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_arg1, CYTHON_UNUSED PyObject *__pyx_v_arg2, int __pyx_skip_dispatch); /* proto*/

/* Module declarations from "cython" */

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

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

/* Module declarations from "__builtin__" */

/* Module declarations from "cpython.type" */

/* Module declarations from "cpython" */

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

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

/* Module declarations from "numpy" */

/* Module declarations from "numpy" */
static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/

/* Module declarations from "pysndlib.csndlib" */

/* Module declarations from "pysndlib.cclm" */

/* Module declarations from "pysndlib.sndlib" */

/* Module declarations from "pysndlib.clm" */
static double (*__pyx_f_8pysndlib_3clm_get_srate)(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_get_srate *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_random)(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_random *__pyx_optional_args); /*proto*/
static int (*__pyx_f_8pysndlib_3clm_is_zero)(double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_radians2hz)(double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_hz2radians)(double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_polynomial)(PyArrayObject *, double, int __pyx_skip_dispatch); /*proto*/
static PyArrayObject *(*__pyx_f_8pysndlib_3clm_make_fft_window)(enum __pyx_t_8pysndlib_3clm_Window, int, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_make_fft_window *__pyx_optional_args); /*proto*/
static PyArrayObject *(*__pyx_f_8pysndlib_3clm_mus_fft)(PyArrayObject *, PyArrayObject *, int, int, int __pyx_skip_dispatch); /*proto*/
static PyArrayObject *(*__pyx_f_8pysndlib_3clm_mus_rectangular2polar)(PyArrayObject *, PyArrayObject *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_oscil)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_oscil *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_env)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_env_any)(struct __pyx_obj_8pysndlib_3clm_mus_any *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_polywave)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_polywave *__pyx_optional_args); /*proto*/
static int (*__pyx_f_8pysndlib_3clm_is_polywave)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_triangle_wave)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_triangle_wave *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_3clm_mus_any *(*__pyx_f_8pysndlib_3clm_make_sawtooth_wave)(double, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_make_sawtooth_wave *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_sawtooth_wave)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_sawtooth_wave *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_pulse_train)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_pulse_train *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_nrxysin)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_nrxysin *__pyx_optional_args); /*proto*/
static int (*__pyx_f_8pysndlib_3clm_is_nrxysin)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_rand)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_rand *__pyx_optional_args); /*proto*/
static PyObject *(*__pyx_f_8pysndlib_3clm_rand_interp)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_rand_interp *__pyx_optional_args); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_one_pole)(struct __pyx_obj_8pysndlib_3clm_mus_any *, double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_moving_average)(struct __pyx_obj_8pysndlib_3clm_mus_any *, double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_readin)(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_bes_j0)(double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_bes_j1)(double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_bes_jn)(int, double, int __pyx_skip_dispatch); /*proto*/
static double (*__pyx_f_8pysndlib_3clm_bes_y0)(double, int __pyx_skip_dispatch); /*proto*/

/* Module declarations from "pysndlib.generators" */
static double __pyx_v_8pysndlib_10generators_NEARLY_ZERO;
static double __pyx_v_8pysndlib_10generators_TWO_PI;
static double __pyx_v_8pysndlib_10generators_PI;
static double __pyx_f_8pysndlib_10generators_nssb(struct __pyx_obj_8pysndlib_10generators_Nssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxysin(struct __pyx_obj_8pysndlib_10generators_Nxysin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxysin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxysin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxycos(struct __pyx_obj_8pysndlib_10generators_Nxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxycos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxycos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxy1cos(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxy1cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxy1sin(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1sin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxy1sin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddcos(struct __pyx_obj_8pysndlib_10generators_Noddcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddssb(struct __pyx_obj_8pysndlib_10generators_Noddssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos2(struct __pyx_obj_8pysndlib_10generators_Ncos2 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos2 *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos2(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos4(struct __pyx_obj_8pysndlib_10generators_Ncos4 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos4 *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos4(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_npcos(struct __pyx_obj_8pysndlib_10generators_Npcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos5(struct __pyx_obj_8pysndlib_10generators_Ncos5 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos5 *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos5(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nsin5(struct __pyx_obj_8pysndlib_10generators_Nsin5 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsin5 *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nsin5(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrsin(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrsin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrsin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrcos(struct __pyx_obj_8pysndlib_10generators_Nrcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrssb(struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrssb_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nkssb(struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_nkssb_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nkssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nsincos(struct __pyx_obj_8pysndlib_10generators_Nsincos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsincos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nsincos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_n1cos(struct __pyx_obj_8pysndlib_10generators_N1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_n1cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_n1cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_npos1cos(struct __pyx_obj_8pysndlib_10generators_Npos1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos1cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npos1cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_npos3cos(struct __pyx_obj_8pysndlib_10generators_Npos3cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos3cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npos3cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rcos(struct __pyx_obj_8pysndlib_10generators_Rcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rssb(struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_rssb_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb_interp *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rxysin(struct __pyx_obj_8pysndlib_10generators_Rxysin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxysin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rxysin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rxycos(struct __pyx_obj_8pysndlib_10generators_Rxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxycos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rxycos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_safe_rxycos(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_safe_rxycos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_ercos(struct __pyx_obj_8pysndlib_10generators_Ercos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ercos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ercos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_erssb(struct __pyx_obj_8pysndlib_10generators_Erssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_erssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_erssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2cos(struct __pyx_obj_8pysndlib_10generators_R2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2ssb(struct __pyx_obj_8pysndlib_10generators_R2ssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2ssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2ssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_eoddcos(struct __pyx_obj_8pysndlib_10generators_Eoddcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_eoddcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_eoddcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkcos(struct __pyx_obj_8pysndlib_10generators_Rkcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rksin(struct __pyx_obj_8pysndlib_10generators_Rksin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rksin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rksin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkfcos(struct __pyx_obj_8pysndlib_10generators_Rkfcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkfcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkfssb(struct __pyx_obj_8pysndlib_10generators_Rkfssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkfssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2kfcos(struct __pyx_obj_8pysndlib_10generators_R2kfcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2kfcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2kfcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2sin(struct __pyx_obj_8pysndlib_10generators_K2sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2sin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2sin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2cos(struct __pyx_obj_8pysndlib_10generators_K2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2ssb(struct __pyx_obj_8pysndlib_10generators_K2ssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2ssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2ssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_dblsum(struct __pyx_obj_8pysndlib_10generators_Dblsum *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_dblsum *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_dblsum(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkoddssb(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkoddssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkoddssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_krksin(struct __pyx_obj_8pysndlib_10generators_Krksin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_krksin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_krksin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_absin(struct __pyx_obj_8pysndlib_10generators_Absin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_absin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_absin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_abcos(struct __pyx_obj_8pysndlib_10generators_Abcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_abcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_abcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2k2cos(struct __pyx_obj_8pysndlib_10generators_R2k2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2k2cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2k2cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_blsaw(struct __pyx_obj_8pysndlib_10generators_Blsaw *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blsaw *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_blsaw(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_i *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_j *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_asyfm(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_bess(struct __pyx_obj_8pysndlib_10generators_Bess *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_bess *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_bess(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_jjcos(struct __pyx_obj_8pysndlib_10generators_Jjcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jjcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jjcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_j0evencos(struct __pyx_obj_8pysndlib_10generators_J0evencos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0evencos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j0evencos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_j2cos(struct __pyx_obj_8pysndlib_10generators_J2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j2cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j2cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_jpcos(struct __pyx_obj_8pysndlib_10generators_Jpcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jpcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jpcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_jncos(struct __pyx_obj_8pysndlib_10generators_Jncos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jncos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jncos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_j0j1cos(struct __pyx_obj_8pysndlib_10generators_J0j1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0j1cos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j0j1cos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_jycos(struct __pyx_obj_8pysndlib_10generators_Jycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jycos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jycos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_jcos(struct __pyx_obj_8pysndlib_10generators_Jcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_blackman(struct __pyx_obj_8pysndlib_10generators_Blackman *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blackman *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_blackman(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_fmssb(struct __pyx_obj_8pysndlib_10generators_Fmssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_fmssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_fmssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_k3sin(struct __pyx_obj_8pysndlib_10generators_K3sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k3sin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k3sin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_izcos(struct __pyx_obj_8pysndlib_10generators_Izcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_izcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_izcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_square_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_square_wave(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_triangle_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_triangle_wave(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_sawtooth_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_sawtooth_wave(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_oscil(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_oscil(PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_make_table_lookup_with_env(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_make_wave_train_with_env(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_round_interp(struct __pyx_obj_8pysndlib_10generators_RoundInterp *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_round_interp *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_round_interp(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_sine_env(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_square_env(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_blackman4_env(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_nchoosekcos(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nchoosekcos(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_sinc_train(struct __pyx_obj_8pysndlib_10generators_SincTrain *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_sinc_train *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_sinc_train(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_pink_noise(struct __pyx_obj_8pysndlib_10generators_PinkNoise *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_pink_noise *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_pink_noise(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_brown_noise(struct __pyx_obj_8pysndlib_10generators_BrownNoise *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_brown_noise *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_brown_noise(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_sum(struct __pyx_obj_8pysndlib_10generators_MovingSum *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_sum *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_sum(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_variance(struct __pyx_obj_8pysndlib_10generators_MovingVariance *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_variance *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_variance(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_rms(struct __pyx_obj_8pysndlib_10generators_MovingRMS *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_rms *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_rms(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_length(struct __pyx_obj_8pysndlib_10generators_MovingLength *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_length *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_length(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_weighted_moving_average(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_weighted_moving_average(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_exponentially_weighted_moving_average(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_exponentially_weighted_moving_average(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_polyoid(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_polyoid *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_polyoid(PyObject *, int __pyx_skip_dispatch); /*proto*/
static double __pyx_f_8pysndlib_10generators_tanhsin(struct __pyx_obj_8pysndlib_10generators_Tanhsin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_tanhsin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_tanhsin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_f_8pysndlib_10generators_make_nssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_f_8pysndlib_10generators_make_nxysin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxysin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_f_8pysndlib_10generators_make_nxycos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxycos *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_make_nxy1cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxy1cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_f_8pysndlib_10generators_make_nxy1sin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxy1sin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_f_8pysndlib_10generators_make_noddsin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddsin *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddsin(struct __pyx_obj_8pysndlib_10generators_Noddsin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddsin *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddsin(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_f_8pysndlib_10generators_make_noddcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_f_8pysndlib_10generators_make_noddssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_f_8pysndlib_10generators_make_ncos2(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos2 *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_f_8pysndlib_10generators_make_ncos4(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos4 *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_f_8pysndlib_10generators_make_npcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_f_8pysndlib_10generators_make_ncos5(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos5 *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_f_8pysndlib_10generators_make_nsin5(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nsin5 *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_f_8pysndlib_10generators_make_nrsin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrsin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_f_8pysndlib_10generators_make_nrcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_f_8pysndlib_10generators_make_nrssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_f_8pysndlib_10generators_make_nkssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nkssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_f_8pysndlib_10generators_make_nsincos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nsincos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_f_8pysndlib_10generators_make_n1cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_n1cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_f_8pysndlib_10generators_make_npos1cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npos1cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_f_8pysndlib_10generators_make_npos3cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npos3cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_f_8pysndlib_10generators_make_rcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_f_8pysndlib_10generators_make_rssb(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_f_8pysndlib_10generators_make_rxysin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rxysin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_f_8pysndlib_10generators_make_rxycos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rxycos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_f_8pysndlib_10generators_make_safe_rxycos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_safe_rxycos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_f_8pysndlib_10generators_make_ercos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ercos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_f_8pysndlib_10generators_make_erssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_erssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_f_8pysndlib_10generators_make_r2cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_f_8pysndlib_10generators_make_r2ssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2ssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_f_8pysndlib_10generators_make_eoddcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_eoddcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_f_8pysndlib_10generators_make_rkcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_f_8pysndlib_10generators_make_rksin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rksin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_f_8pysndlib_10generators_make_rkssb(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkssb *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkssb(struct __pyx_obj_8pysndlib_10generators_Rkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkssb *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkssb(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_f_8pysndlib_10generators_make_rkfcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkfcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_f_8pysndlib_10generators_make_rkfssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkfssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_f_8pysndlib_10generators_make_r2kfcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2kfcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_f_8pysndlib_10generators_make_k2sin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2sin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_f_8pysndlib_10generators_make_k2cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_f_8pysndlib_10generators_make_k2ssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2ssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_f_8pysndlib_10generators_make_dblsum(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_dblsum *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_f_8pysndlib_10generators_make_rkoddssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkoddssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_f_8pysndlib_10generators_make_krksin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_krksin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_f_8pysndlib_10generators_make_absin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_absin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_f_8pysndlib_10generators_make_abcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_abcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_f_8pysndlib_10generators_make_r2k2cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2k2cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_f_8pysndlib_10generators_make_blsaw(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_blsaw *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_f_8pysndlib_10generators_make_asyfm(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_asyfm *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_f_8pysndlib_10generators_make_bess(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_bess *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_f_8pysndlib_10generators_make_jjcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jjcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_f_8pysndlib_10generators_make_j0evencos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j0evencos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_f_8pysndlib_10generators_make_j2cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j2cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_f_8pysndlib_10generators_make_jpcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jpcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_f_8pysndlib_10generators_make_jncos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jncos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_f_8pysndlib_10generators_make_j0j1cos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j0j1cos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_f_8pysndlib_10generators_make_jycos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jycos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_f_8pysndlib_10generators_make_jcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_f_8pysndlib_10generators_make_blackman(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_blackman *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_f_8pysndlib_10generators_make_fmssb(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_fmssb *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_f_8pysndlib_10generators_make_k3sin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k3sin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_f_8pysndlib_10generators_make_izcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_izcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_f_8pysndlib_10generators_make_adjustable_square_wave(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_square_wave *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_f_8pysndlib_10generators_make_adjustable_triangle_wave(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_triangle_wave *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_f_8pysndlib_10generators_make_adjustable_sawtooth_wave(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_sawtooth_wave *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_f_8pysndlib_10generators_make_adjustable_oscil(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_oscil *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_f_8pysndlib_10generators_make_round_interp(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_round_interp *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_sin_env_fun(PyObject *); /*proto*/
static double __pyx_f_8pysndlib_10generators_square_env_fun(PyObject *); /*proto*/
static double __pyx_f_8pysndlib_10generators_blackman4_env_fun(PyObject *); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_f_8pysndlib_10generators_make_nchoosekcos(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nchoosekcos *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_f_8pysndlib_10generators_make_sinc_train(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_sinc_train *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_f_8pysndlib_10generators_make_pink_noise(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_pink_noise *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_f_8pysndlib_10generators_make_brown_noise(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_brown_noise *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_f_8pysndlib_10generators_make_green_noise(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_green_noise *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_green_noise(struct __pyx_obj_8pysndlib_10generators_GreenNoise *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_green_noise *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_green_noise(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_f_8pysndlib_10generators_make_green_noise_interp(PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_green_noise_interp *__pyx_optional_args); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_green_noise_interp(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_green_noise_interp *__pyx_optional_args); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_green_noise_interp(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_f_8pysndlib_10generators_make_moving_sum(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_sum *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_f_8pysndlib_10generators_make_moving_variance(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_variance *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_f_8pysndlib_10generators_make_moving_rms(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_rms *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_f_8pysndlib_10generators_make_moving_length(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_length *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_f_8pysndlib_10generators_make_weighted_moving_average(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_weighted_moving_average *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_f_8pysndlib_10generators_make_exponentially_weighted_moving_average(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_exponentially_weighted_moving_average *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_f_8pysndlib_10generators_make_polyoid(PyObject *, PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_polyoid_tn(PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_polyoid_un(PyObject *, int __pyx_skip_dispatch); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_f_8pysndlib_10generators_make_tanhsin(int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_tanhsin *__pyx_optional_args); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_f_8pysndlib_10generators_make_moving_fft(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_fft *__pyx_optional_args); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_fft(struct __pyx_obj_8pysndlib_10generators_MovingFFT *, int __pyx_skip_dispatch); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_fft(PyObject *, int __pyx_skip_dispatch); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_CLMGenerator__set_state(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxysin__set_state(struct __pyx_obj_8pysndlib_10generators_Nxysin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxycos__set_state(struct __pyx_obj_8pysndlib_10generators_Nxycos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1cos__set_state(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1sin__set_state(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddsin__set_state(struct __pyx_obj_8pysndlib_10generators_Noddsin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddcos__set_state(struct __pyx_obj_8pysndlib_10generators_Noddcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddssb__set_state(struct __pyx_obj_8pysndlib_10generators_Noddssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos2__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos2 *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos4__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos4 *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npcos__set_state(struct __pyx_obj_8pysndlib_10generators_Npcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos5__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos5 *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nsin5__set_state(struct __pyx_obj_8pysndlib_10generators_Nsin5 *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nrcos__set_state(struct __pyx_obj_8pysndlib_10generators_Nrcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nrssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nrssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nkssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nkssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nsincos__set_state(struct __pyx_obj_8pysndlib_10generators_Nsincos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_N1cos__set_state(struct __pyx_obj_8pysndlib_10generators_N1cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npos1cos__set_state(struct __pyx_obj_8pysndlib_10generators_Npos1cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npos3cos__set_state(struct __pyx_obj_8pysndlib_10generators_Npos3cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rxysin__set_state(struct __pyx_obj_8pysndlib_10generators_Rxysin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rxycos__set_state(struct __pyx_obj_8pysndlib_10generators_Rxycos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_SafeRxycos__set_state(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ercos__set_state(struct __pyx_obj_8pysndlib_10generators_Ercos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Erssb__set_state(struct __pyx_obj_8pysndlib_10generators_Erssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2cos__set_state(struct __pyx_obj_8pysndlib_10generators_R2cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2ssb__set_state(struct __pyx_obj_8pysndlib_10generators_R2ssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Eoddcos__set_state(struct __pyx_obj_8pysndlib_10generators_Eoddcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rkcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rksin__set_state(struct __pyx_obj_8pysndlib_10generators_Rksin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rkfcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkfssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2kfcos__set_state(struct __pyx_obj_8pysndlib_10generators_R2kfcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2sin__set_state(struct __pyx_obj_8pysndlib_10generators_K2sin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2cos__set_state(struct __pyx_obj_8pysndlib_10generators_K2cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2ssb__set_state(struct __pyx_obj_8pysndlib_10generators_K2ssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Dblsum__set_state(struct __pyx_obj_8pysndlib_10generators_Dblsum *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkoddssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Krksin__set_state(struct __pyx_obj_8pysndlib_10generators_Krksin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Absin__set_state(struct __pyx_obj_8pysndlib_10generators_Absin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Abcos__set_state(struct __pyx_obj_8pysndlib_10generators_Abcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2k2cos__set_state(struct __pyx_obj_8pysndlib_10generators_R2k2cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Blsaw__set_state(struct __pyx_obj_8pysndlib_10generators_Blsaw *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Asyfm__set_state(struct __pyx_obj_8pysndlib_10generators_Asyfm *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Bess__set_state(struct __pyx_obj_8pysndlib_10generators_Bess *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jjcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jjcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J0evencos__set_state(struct __pyx_obj_8pysndlib_10generators_J0evencos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J2cos__set_state(struct __pyx_obj_8pysndlib_10generators_J2cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jpcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jpcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jncos__set_state(struct __pyx_obj_8pysndlib_10generators_Jncos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J0j1cos__set_state(struct __pyx_obj_8pysndlib_10generators_J0j1cos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jycos__set_state(struct __pyx_obj_8pysndlib_10generators_Jycos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Blackman__set_state(struct __pyx_obj_8pysndlib_10generators_Blackman *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Fmssb__set_state(struct __pyx_obj_8pysndlib_10generators_Fmssb *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K3sin__set_state(struct __pyx_obj_8pysndlib_10generators_K3sin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Izcos__set_state(struct __pyx_obj_8pysndlib_10generators_Izcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSquareWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableTriangleWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSawtoothWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableOscil__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_RoundInterp__set_state(struct __pyx_obj_8pysndlib_10generators_RoundInterp *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nchoosekcos__set_state(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_SincTrain__set_state(struct __pyx_obj_8pysndlib_10generators_SincTrain *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_PinkNoise__set_state(struct __pyx_obj_8pysndlib_10generators_PinkNoise *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_BrownNoise__set_state(struct __pyx_obj_8pysndlib_10generators_BrownNoise *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoise__set_state(struct __pyx_obj_8pysndlib_10generators_GreenNoise *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoiseInterp__set_state(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingSum__set_state(struct __pyx_obj_8pysndlib_10generators_MovingSum *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingVariance__set_state(struct __pyx_obj_8pysndlib_10generators_MovingVariance *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingRMS__set_state(struct __pyx_obj_8pysndlib_10generators_MovingRMS *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingLength__set_state(struct __pyx_obj_8pysndlib_10generators_MovingLength *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_WeightedMovingAverage__set_state(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Tanhsin__set_state(struct __pyx_obj_8pysndlib_10generators_Tanhsin *, PyObject *); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingFFT__set_state(struct __pyx_obj_8pysndlib_10generators_MovingFFT *, PyObject *); /*proto*/
static PyObject *__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(enum __pyx_t_8pysndlib_3clm_Polynomial); /*proto*/
static PyObject *__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*)(PyObject *)); /*proto*/
/* #### Code section: typeinfo ### */
/* #### Code section: before_global_var ### */
#define __Pyx_MODULE_NAME "pysndlib.generators"
extern int __pyx_module_is_main_pysndlib__generators;
int __pyx_module_is_main_pysndlib__generators = 0;

/* Implementation of "pysndlib.generators" */
/* #### Code section: global_var ### */
static PyObject *__pyx_builtin_super;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_ValueError;
static PyObject *__pyx_builtin_ImportError;
/* #### Code section: string_decls ### */
static const char __pyx_k_[] = ".";
static const char __pyx_k_a[] = "a";
static const char __pyx_k_b[] = "b";
static const char __pyx_k_e[] = "e";
static const char __pyx_k_k[] = "k";
static const char __pyx_k_n[] = "n";
static const char __pyx_k_r[] = "r";
static const char __pyx_k_x[] = "x";
static const char __pyx_k_y[] = "y";
static const char __pyx_k__2[] = "*";
static const char __pyx_k_a2[] = "a2";
static const char __pyx_k_fm[] = "fm";
static const char __pyx_k_gc[] = "gc";
static const char __pyx_k_hi[] = "hi";
static const char __pyx_k_im[] = "im";
static const char __pyx_k_lo[] = "lo";
static const char __pyx_k_np[] = "np";
static const char __pyx_k_ns[] = "ns";
static const char __pyx_k_pi[] = "pi";
static const char __pyx_k_rl[] = "rl";
static const char __pyx_k_a_2[] = "a: ";
static const char __pyx_k_clm[] = "clm";
static const char __pyx_k_cos[] = "cos";
static const char __pyx_k_den[] = "den";
static const char __pyx_k_exp[] = "exp";
static const char __pyx_k_fun[] = "fun";
static const char __pyx_k_gen[] = "gen";
static const char __pyx_k_hop[] = "hop";
static const char __pyx_k_log[] = "log";
static const char __pyx_k_low[] = "low";
static const char __pyx_k_mid[] = "mid";
static const char __pyx_k_new[] = "__new__";
static const char __pyx_k_num[] = "num";
static const char __pyx_k_osc[] = "osc";
static const char __pyx_k_pow[] = "pow";
static const char __pyx_k_r_2[] = ", r: ";
static const char __pyx_k_rnd[] = "rnd";
static const char __pyx_k_sin[] = "sin";
static const char __pyx_k_tan[] = "tan";
static const char __pyx_k_yhi[] = "yhi";
static const char __pyx_k_ylo[] = "ylo";
static const char __pyx_k_Bess[] = "Bess";
static const char __pyx_k_Jcos[] = "Jcos";
static const char __pyx_k_Nssb[] = "Nssb";
static const char __pyx_k_Rcos[] = "Rcos";
static const char __pyx_k_Rssb[] = "Rssb";
static const char __pyx_k__935[] = "?";
static const char __pyx_k_acos[] = "acos";
static const char __pyx_k_arg1[] = "arg1";
static const char __pyx_k_arg2[] = "arg2";
static const char __pyx_k_bess[] = "bess";
static const char __pyx_k_ceil[] = "ceil";
static const char __pyx_k_cosh[] = "cosh";
static const char __pyx_k_data[] = "data";
static const char __pyx_k_dict[] = "__dict__";
static const char __pyx_k_fabs[] = "fabs";
static const char __pyx_k_fill[] = "fill";
static const char __pyx_k_high[] = "high";
static const char __pyx_k_init[] = "__init__";
static const char __pyx_k_jcos[] = "jcos";
static const char __pyx_k_main[] = "__main__";
static const char __pyx_k_math[] = "math";
static const char __pyx_k_name[] = "__name__";
static const char __pyx_k_next[] = "next";
static const char __pyx_k_norm[] = "norm";
static const char __pyx_k_nssb[] = "nssb";
static const char __pyx_k_rcos[] = "rcos";
static const char __pyx_k_real[] = "real";
static const char __pyx_k_roll[] = "roll";
static const char __pyx_k_rssb[] = "rssb";
static const char __pyx_k_self[] = "self";
static const char __pyx_k_sinh[] = "sinh";
static const char __pyx_k_size[] = "size";
static const char __pyx_k_spec[] = "__spec__";
static const char __pyx_k_sqrt[] = "sqrt";
static const char __pyx_k_tanh[] = "tanh";
static const char __pyx_k_test[] = "__test__";
static const char __pyx_k_warn[] = "warn";
static const char __pyx_k_wrap[] = "wrap";
static const char __pyx_k_Abcos[] = "Abcos";
static const char __pyx_k_Absin[] = "Absin";
static const char __pyx_k_Asyfm[] = "Asyfm";
static const char __pyx_k_Blsaw[] = "Blsaw";
static const char __pyx_k_Ercos[] = "Ercos";
static const char __pyx_k_Erssb[] = "Erssb";
static const char __pyx_k_Fmssb[] = "Fmssb";
static const char __pyx_k_Izcos[] = "Izcos";
static const char __pyx_k_J2cos[] = "J2cos";
static const char __pyx_k_Jjcos[] = "Jjcos";
static const char __pyx_k_Jncos[] = "Jncos";
static const char __pyx_k_Jpcos[] = "Jpcos";
static const char __pyx_k_Jycos[] = "Jycos";
static const char __pyx_k_K2cos[] = "K2cos";
static const char __pyx_k_K2sin[] = "K2sin";
static const char __pyx_k_K2ssb[] = "K2ssb";
static const char __pyx_k_K3sin[] = "K3sin";
static const char __pyx_k_N1cos[] = "N1cos";
static const char __pyx_k_Ncos2[] = "Ncos2";
static const char __pyx_k_Ncos4[] = "Ncos4";
static const char __pyx_k_Ncos5[] = "Ncos5";
static const char __pyx_k_Nkssb[] = "Nkssb";
static const char __pyx_k_Npcos[] = "Npcos";
static const char __pyx_k_Nrcos[] = "Nrcos";
static const char __pyx_k_Nrssb[] = "Nrssb";
static const char __pyx_k_Nsin5[] = "Nsin5";
static const char __pyx_k_R2cos[] = "R2cos";
static const char __pyx_k_R2ssb[] = "R2ssb";
static const char __pyx_k_Rkcos[] = "Rkcos";
static const char __pyx_k_Rksin[] = "Rksin";
static const char __pyx_k_Rkssb[] = "Rkssb";
static const char __pyx_k_abcos[] = "abcos";
static const char __pyx_k_absin[] = "absin";
static const char __pyx_k_angle[] = "angle";
static const char __pyx_k_array[] = "array";
static const char __pyx_k_asyfm[] = "asyfm";
static const char __pyx_k_atan2[] = "atan2";
static const char __pyx_k_blsaw[] = "blsaw";
static const char __pyx_k_clamp[] = "clamp";
static const char __pyx_k_dtype[] = "dtype";
static const char __pyx_k_ercos[] = "ercos";
static const char __pyx_k_erssb[] = "erssb";
static const char __pyx_k_expts[] = "expts";
static const char __pyx_k_floor[] = "floor";
static const char __pyx_k_fmssb[] = "fmssb";
static const char __pyx_k_index[] = "index";
static const char __pyx_k_insig[] = "insig";
static const char __pyx_k_izcos[] = "izcos";
static const char __pyx_k_j2cos[] = "j2cos";
static const char __pyx_k_jjcos[] = "jjcos";
static const char __pyx_k_jncos[] = "jncos";
static const char __pyx_k_jpcos[] = "jpcos";
static const char __pyx_k_jycos[] = "jycos";
static const char __pyx_k_k2cos[] = "k2cos";
static const char __pyx_k_k2sin[] = "k2sin";
static const char __pyx_k_k2ssb[] = "k2ssb";
static const char __pyx_k_k3sin[] = "k3sin";
static const char __pyx_k_n1cos[] = "n1cos";
static const char __pyx_k_ncos2[] = "ncos2";
static const char __pyx_k_ncos4[] = "ncos4";
static const char __pyx_k_ncos5[] = "ncos5";
static const char __pyx_k_nkssb[] = "nkssb";
static const char __pyx_k_nodds[] = "nodds";
static const char __pyx_k_npcos[] = "npcos";
static const char __pyx_k_nrcos[] = "nrcos";
static const char __pyx_k_nrsin[] = "nrsin";
static const char __pyx_k_nrssb[] = "nrssb";
static const char __pyx_k_nsin5[] = "nsin5";
static const char __pyx_k_numpy[] = "numpy";
static const char __pyx_k_r2cos[] = "r2cos";
static const char __pyx_k_r2ssb[] = "r2ssb";
static const char __pyx_k_range[] = "range";
static const char __pyx_k_ratio[] = "ratio";
static const char __pyx_k_rkcos[] = "rkcos";
static const char __pyx_k_rksin[] = "rksin";
static const char __pyx_k_rkssb[] = "rkssb";
static const char __pyx_k_state[] = "state";
static const char __pyx_k_super[] = "super";
static const char __pyx_k_zeros[] = "zeros";
static const char __pyx_k_Dblsum[] = "Dblsum";
static const char __pyx_k_Krksin[] = "Krksin";
static const char __pyx_k_Nxycos[] = "Nxycos";
static const char __pyx_k_Nxysin[] = "Nxysin";
static const char __pyx_k_Rkfcos[] = "Rkfcos";
static const char __pyx_k_Rkfssb[] = "Rkfssb";
static const char __pyx_k_Rxycos[] = "Rxycos";
static const char __pyx_k_Rxysin[] = "Rxysin";
static const char __pyx_k_bes_i0[] = "bes_i0";
static const char __pyx_k_copyto[] = "copyto";
static const char __pyx_k_dblsum[] = "dblsum";
static const char __pyx_k_dict_2[] = "_dict";
static const char __pyx_k_double[] = "double";
static const char __pyx_k_enable[] = "enable";
static const char __pyx_k_import[] = "__import__";
static const char __pyx_k_interp[] = "interp";
static const char __pyx_k_krksin[] = "krksin";
static const char __pyx_k_length[] = "length";
static const char __pyx_k_next_i[] = "next_i";
static const char __pyx_k_next_j[] = "next_j";
static const char __pyx_k_nxycos[] = "nxycos";
static const char __pyx_k_nxysin[] = "nxysin";
static const char __pyx_k_outctr[] = "outctr";
static const char __pyx_k_pickle[] = "pickle";
static const char __pyx_k_random[] = "random";
static const char __pyx_k_reader[] = "reader";
static const char __pyx_k_reduce[] = "__reduce__";
static const char __pyx_k_rkfcos[] = "rkfcos";
static const char __pyx_k_rkfssb[] = "rkfssb";
static const char __pyx_k_rxycos[] = "rxycos";
static const char __pyx_k_rxysin[] = "rxysin";
static const char __pyx_k_update[] = "update";
static const char __pyx_k_window[] = "window";
static const char __pyx_k_Eoddcos[] = "Eoddcos";
static const char __pyx_k_J0j1cos[] = "J0j1cos";
static const char __pyx_k_Noddcos[] = "Noddcos";
static const char __pyx_k_Noddsin[] = "Noddsin";
static const char __pyx_k_Noddssb[] = "Noddssb";
static const char __pyx_k_Nsincos[] = "Nsincos";
static const char __pyx_k_Nxy1cos[] = "Nxy1cos";
static const char __pyx_k_Nxy1sin[] = "Nxy1sin";
static const char __pyx_k_R2k2cos[] = "R2k2cos";
static const char __pyx_k_R2kfcos[] = "R2kfcos";
static const char __pyx_k_Tanhsin[] = "Tanhsin";
static const char __pyx_k_asyfm_i[] = "asyfm_i";
static const char __pyx_k_asyfm_j[] = "asyfm_j";
static const char __pyx_k_default[] = "default";
static const char __pyx_k_disable[] = "disable";
static const char __pyx_k_eoddcos[] = "eoddcos";
static const char __pyx_k_is_bess[] = "is_bess";
static const char __pyx_k_is_jcos[] = "is_jcos";
static const char __pyx_k_is_nssb[] = "is_nssb";
static const char __pyx_k_is_rcos[] = "is_rcos";
static const char __pyx_k_is_rssb[] = "is_rssb";
static const char __pyx_k_j0j1cos[] = "j0j1cos";
static const char __pyx_k_mus_run[] = "mus_run";
static const char __pyx_k_noddcos[] = "noddcos";
static const char __pyx_k_noddsin[] = "noddsin";
static const char __pyx_k_noddssb[] = "noddssb";
static const char __pyx_k_nsincos[] = "nsincos";
static const char __pyx_k_nxy1cos[] = "nxy1cos";
static const char __pyx_k_nxy1sin[] = "nxy1sin";
static const char __pyx_k_polyoid[] = "polyoid";
static const char __pyx_k_r2k2cos[] = "r2k2cos";
static const char __pyx_k_r2kfcos[] = "r2kfcos";
static const char __pyx_k_tanhsin[] = "tanhsin";
static const char __pyx_k_xcoeffs[] = "xcoeffs";
static const char __pyx_k_ycoeffs[] = "ycoeffs";
static const char __pyx_k_Blackman[] = "Blackman";
static const char __pyx_k_Npos1cos[] = "Npos1cos";
static const char __pyx_k_Npos3cos[] = "Npos3cos";
static const char __pyx_k_Rkoddssb[] = "Rkoddssb";
static const char __pyx_k_blackman[] = "blackman";
static const char __pyx_k_channels[] = "channels";
static const char __pyx_k_getstate[] = "__getstate__";
static const char __pyx_k_is_abcos[] = "is_abcos";
static const char __pyx_k_is_absin[] = "is_absin";
static const char __pyx_k_is_asyfm[] = "is_asyfm";
static const char __pyx_k_is_blsaw[] = "is_blsaw";
static const char __pyx_k_is_ercos[] = "is_ercos";
static const char __pyx_k_is_erssb[] = "is_erssb";
static const char __pyx_k_is_fmssb[] = "is_fmssb";
static const char __pyx_k_is_izcos[] = "is_izcos";
static const char __pyx_k_is_j2cos[] = "is_j2cos";
static const char __pyx_k_is_jjcos[] = "is_jjcos";
static const char __pyx_k_is_jncos[] = "is_jncos";
static const char __pyx_k_is_jpcos[] = "is_jpcos";
static const char __pyx_k_is_jycos[] = "is_jycos";
static const char __pyx_k_is_k2cos[] = "is_k2cos";
static const char __pyx_k_is_k2sin[] = "is_k2sin";
static const char __pyx_k_is_k2ssb[] = "is_k2ssb";
static const char __pyx_k_is_k3sin[] = "is_k3sin";
static const char __pyx_k_is_n1cos[] = "is_n1cos";
static const char __pyx_k_is_ncos2[] = "is_ncos2";
static const char __pyx_k_is_ncos4[] = "is_ncos4";
static const char __pyx_k_is_ncos5[] = "is_ncos5";
static const char __pyx_k_is_nkssb[] = "is_nkssb";
static const char __pyx_k_is_npcos[] = "is_npcos";
static const char __pyx_k_is_nrcos[] = "is_nrcos";
static const char __pyx_k_is_nrsin[] = "is_nrsin";
static const char __pyx_k_is_nrssb[] = "is_nrssb";
static const char __pyx_k_is_nsin5[] = "is_nsin5";
static const char __pyx_k_is_r2cos[] = "is_r2cos";
static const char __pyx_k_is_r2ssb[] = "is_r2ssb";
static const char __pyx_k_is_rkcos[] = "is_rkcos";
static const char __pyx_k_is_rksin[] = "is_rksin";
static const char __pyx_k_is_rkssb[] = "is_rkssb";
static const char __pyx_k_make_env[] = "make_env";
static const char __pyx_k_npos1cos[] = "npos1cos";
static const char __pyx_k_npos3cos[] = "npos3cos";
static const char __pyx_k_pysndlib[] = "pysndlib";
static const char __pyx_k_pyx_type[] = "__pyx_type";
static const char __pyx_k_rkoddssb[] = "rkoddssb";
static const char __pyx_k_setstate[] = "__setstate__";
static const char __pyx_k_sine_env[] = "sine_env";
static const char __pyx_k_warnings[] = "warnings";
static const char __pyx_k_Bess_next[] = "Bess.next";
static const char __pyx_k_J0evencos[] = "J0evencos";
static const char __pyx_k_Jcos_next[] = "Jcos.next";
static const char __pyx_k_MovingFFT[] = "MovingFFT";
static const char __pyx_k_MovingRMS[] = "MovingRMS";
static const char __pyx_k_MovingSum[] = "MovingSum";
static const char __pyx_k_Nssb_next[] = "Nssb.next";
static const char __pyx_k_PinkNoise[] = "PinkNoise";
static const char __pyx_k_Rcos_next[] = "Rcos.next";
static const char __pyx_k_Rssb_next[] = "Rssb.next";
static const char __pyx_k_SincTrain[] = "SincTrain";
static const char __pyx_k_amplitude[] = "amplitude";
static const char __pyx_k_frequency[] = "frequency";
static const char __pyx_k_is_dblsum[] = "is_dblsum";
static const char __pyx_k_is_krksin[] = "is_krksin";
static const char __pyx_k_is_nxycos[] = "is_nxycos";
static const char __pyx_k_is_nxysin[] = "is_nxysin";
static const char __pyx_k_is_rkfcos[] = "is_rkfcos";
static const char __pyx_k_is_rkfssb[] = "is_rkfssb";
static const char __pyx_k_is_rxycos[] = "is_rxycos";
static const char __pyx_k_is_rxysin[] = "is_rxysin";
static const char __pyx_k_isenabled[] = "isenabled";
static const char __pyx_k_j0evencos[] = "j0evencos";
static const char __pyx_k_make_bess[] = "make_bess";
static const char __pyx_k_make_jcos[] = "make_jcos";
static const char __pyx_k_make_nssb[] = "make_nssb";
static const char __pyx_k_make_rand[] = "make_rand";
static const char __pyx_k_make_rcos[] = "make_rcos";
static const char __pyx_k_make_rssb[] = "make_rssb";
static const char __pyx_k_mus_phase[] = "mus_phase";
static const char __pyx_k_mus_reset[] = "mus_reset";
static const char __pyx_k_must_be_r[] = " must be < r: ";
static const char __pyx_k_pulse_env[] = "pulse_env";
static const char __pyx_k_pyx_state[] = "__pyx_state";
static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
static const char __pyx_k_Abcos_next[] = "Abcos.next";
static const char __pyx_k_Absin_next[] = "Absin.next";
static const char __pyx_k_Asyfm_next[] = "Asyfm.next";
static const char __pyx_k_BOTH_KINDS[] = "BOTH_KINDS";
static const char __pyx_k_Blsaw_next[] = "Blsaw.next";
static const char __pyx_k_BrownNoise[] = "BrownNoise";
static const char __pyx_k_Ercos_next[] = "Ercos.next";
static const char __pyx_k_Erssb_next[] = "Erssb.next";
static const char __pyx_k_FIRST_KIND[] = "FIRST_KIND";
static const char __pyx_k_Fmssb_next[] = "Fmssb.next";
static const char __pyx_k_GreenNoise[] = "GreenNoise";
static const char __pyx_k_Izcos_next[] = "Izcos.next";
static const char __pyx_k_J2cos_next[] = "J2cos.next";
static const char __pyx_k_Jjcos_next[] = "Jjcos.next";
static const char __pyx_k_Jncos_next[] = "Jncos.next";
static const char __pyx_k_Jpcos_next[] = "Jpcos.next";
static const char __pyx_k_Jycos_next[] = "Jycos.next";
static const char __pyx_k_K2cos_next[] = "K2cos.next";
static const char __pyx_k_K2sin_next[] = "K2sin.next";
static const char __pyx_k_K2ssb_next[] = "K2ssb.next";
static const char __pyx_k_K3sin_next[] = "K3sin.next";
static const char __pyx_k_N1cos_next[] = "N1cos.next";
static const char __pyx_k_Ncos2_next[] = "Ncos2.next";
static const char __pyx_k_Ncos4_next[] = "Ncos4.next";
static const char __pyx_k_Ncos5_next[] = "Ncos5.next";
static const char __pyx_k_Nkssb_next[] = "Nkssb.next";
static const char __pyx_k_Npcos_next[] = "Npcos.next";
static const char __pyx_k_Nrcos_next[] = "Nrcos.next";
static const char __pyx_k_Nrssb_next[] = "Nrssb.next";
static const char __pyx_k_Nsin5_next[] = "Nsin5.next";
static const char __pyx_k_Polynomial[] = "Polynomial";
static const char __pyx_k_R2cos_next[] = "R2cos.next";
static const char __pyx_k_R2ssb_next[] = "R2ssb.next";
static const char __pyx_k_Rkcos_next[] = "Rkcos.next";
static const char __pyx_k_Rksin_next[] = "Rksin.next";
static const char __pyx_k_Rkssb_next[] = "Rkssb.next";
static const char __pyx_k_SafeRxycos[] = "SafeRxycos";
static const char __pyx_k_ValueError[] = "ValueError";
static const char __pyx_k_is_eoddcos[] = "is_eoddcos";
static const char __pyx_k_is_j0j1cos[] = "is_j0j1cos";
static const char __pyx_k_is_noddcos[] = "is_noddcos";
static const char __pyx_k_is_noddsin[] = "is_noddsin";
static const char __pyx_k_is_noddssb[] = "is_noddssb";
static const char __pyx_k_is_nsincos[] = "is_nsincos";
static const char __pyx_k_is_nxy1cos[] = "is_nxy1cos";
static const char __pyx_k_is_nxy1sin[] = "is_nxy1sin";
static const char __pyx_k_is_polyoid[] = "is_polyoid";
static const char __pyx_k_is_r2k2cos[] = "is_r2k2cos";
static const char __pyx_k_is_r2kfcos[] = "is_r2kfcos";
static const char __pyx_k_is_tanhsin[] = "is_tanhsin";
static const char __pyx_k_make_abcos[] = "make_abcos";
static const char __pyx_k_make_absin[] = "make_absin";
static const char __pyx_k_make_asyfm[] = "make_asyfm";
static const char __pyx_k_make_blsaw[] = "make_blsaw";
static const char __pyx_k_make_ercos[] = "make_ercos";
static const char __pyx_k_make_erssb[] = "make_erssb";
static const char __pyx_k_make_fmssb[] = "make_fmssb";
static const char __pyx_k_make_izcos[] = "make_izcos";
static const char __pyx_k_make_j2cos[] = "make_j2cos";
static const char __pyx_k_make_jjcos[] = "make_jjcos";
static const char __pyx_k_make_jncos[] = "make_jncos";
static const char __pyx_k_make_jpcos[] = "make_jpcos";
static const char __pyx_k_make_jycos[] = "make_jycos";
static const char __pyx_k_make_k2cos[] = "make_k2cos";
static const char __pyx_k_make_k2sin[] = "make_k2sin";
static const char __pyx_k_make_k2ssb[] = "make_k2ssb";
static const char __pyx_k_make_k3sin[] = "make_k3sin";
static const char __pyx_k_make_n1cos[] = "make_n1cos";
static const char __pyx_k_make_ncos2[] = "make_ncos2";
static const char __pyx_k_make_ncos4[] = "make_ncos4";
static const char __pyx_k_make_ncos5[] = "make_ncos5";
static const char __pyx_k_make_nkssb[] = "make_nkssb";
static const char __pyx_k_make_npcos[] = "make_npcos";
static const char __pyx_k_make_nrcos[] = "make_nrcos";
static const char __pyx_k_make_nrsin[] = "make_nrsin";
static const char __pyx_k_make_nrssb[] = "make_nrssb";
static const char __pyx_k_make_nsin5[] = "make_nsin5";
static const char __pyx_k_make_oscil[] = "make_oscil";
static const char __pyx_k_make_r2cos[] = "make_r2cos";
static const char __pyx_k_make_r2ssb[] = "make_r2ssb";
static const char __pyx_k_make_rkcos[] = "make_rkcos";
static const char __pyx_k_make_rksin[] = "make_rksin";
static const char __pyx_k_make_rkssb[] = "make_rkssb";
static const char __pyx_k_moving_fft[] = "moving_fft";
static const char __pyx_k_moving_rms[] = "moving_rms";
static const char __pyx_k_moving_sum[] = "moving_sum";
static const char __pyx_k_pink_noise[] = "pink_noise";
static const char __pyx_k_polyoid_tn[] = "polyoid_tn";
static const char __pyx_k_polyoid_un[] = "polyoid_un";
static const char __pyx_k_pyx_result[] = "__pyx_result";
static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
static const char __pyx_k_sinc_train[] = "sinc_train";
static const char __pyx_k_square_env[] = "square_env";
static const char __pyx_k_table_size[] = "table_size";
static const char __pyx_k_Dblsum_next[] = "Dblsum.next";
static const char __pyx_k_EITHER_KIND[] = "EITHER_KIND";
static const char __pyx_k_ImportError[] = "ImportError";
static const char __pyx_k_Krksin_next[] = "Krksin.next";
static const char __pyx_k_Nchoosekcos[] = "Nchoosekcos";
static const char __pyx_k_Nxycos_next[] = "Nxycos.next";
static const char __pyx_k_Nxysin_next[] = "Nxysin.next";
static const char __pyx_k_PickleError[] = "PickleError";
static const char __pyx_k_Rkfcos_next[] = "Rkfcos.next";
static const char __pyx_k_Rkfssb_next[] = "Rkfssb.next";
static const char __pyx_k_RoundInterp[] = "RoundInterp";
static const char __pyx_k_Rxycos_next[] = "Rxycos.next";
static const char __pyx_k_Rxysin_next[] = "Rxysin.next";
static const char __pyx_k_SECOND_KIND[] = "SECOND_KIND";
static const char __pyx_k_brown_noise[] = "brown_noise";
static const char __pyx_k_call_interp[] = "call_interp";
static const char __pyx_k_cfunc_to_py[] = "cfunc.to_py";
static const char __pyx_k_duty_factor[] = "duty_factor";
static const char __pyx_k_green_noise[] = "green_noise";
static const char __pyx_k_is_blackman[] = "is_blackman";
static const char __pyx_k_is_npos1cos[] = "is_npos1cos";
static const char __pyx_k_is_npos3cos[] = "is_npos3cos";
static const char __pyx_k_is_rkoddssb[] = "is_rkoddssb";
static const char __pyx_k_make_dblsum[] = "make_dblsum";
static const char __pyx_k_make_krksin[] = "make_krksin";
static const char __pyx_k_make_nxycos[] = "make_nxycos";
static const char __pyx_k_make_nxysin[] = "make_nxysin";
static const char __pyx_k_make_rkfcos[] = "make_rkfcos";
static const char __pyx_k_make_rkfssb[] = "make_rkfssb";
static const char __pyx_k_make_rxycos[] = "make_rxycos";
static const char __pyx_k_make_rxysin[] = "make_rxysin";
static const char __pyx_k_mus_channel[] = "mus_channel";
static const char __pyx_k_mus_xcoeffs[] = "mus_xcoeffs";
static const char __pyx_k_mus_ycoeffs[] = "mus_ycoeffs";
static const char __pyx_k_nchoosekcos[] = "nchoosekcos";
static const char __pyx_k_rssb_interp[] = "rssb_interp";
static const char __pyx_k_safe_rxycos[] = "safe_rxycos";
static const char __pyx_k_Asyfm_next_i[] = "Asyfm.next_i";
static const char __pyx_k_Asyfm_next_j[] = "Asyfm.next_j";
static const char __pyx_k_CLMGenerator[] = "CLMGenerator";
static const char __pyx_k_Eoddcos_next[] = "Eoddcos.next";
static const char __pyx_k_J0j1cos_next[] = "J0j1cos.next";
static const char __pyx_k_MovingLength[] = "MovingLength";
static const char __pyx_k_Noddcos_next[] = "Noddcos.next";
static const char __pyx_k_Noddsin_next[] = "Noddsin.next";
static const char __pyx_k_Noddssb_next[] = "Noddssb.next";
static const char __pyx_k_Nsincos_next[] = "Nsincos.next";
static const char __pyx_k_Nxy1cos_next[] = "Nxy1cos.next";
static const char __pyx_k_Nxy1sin_next[] = "Nxy1sin.next";
static const char __pyx_k_R2k2cos_next[] = "R2k2cos.next";
static const char __pyx_k_R2kfcos_next[] = "R2kfcos.next";
static const char __pyx_k_Tanhsin_next[] = "Tanhsin.next";
static const char __pyx_k_bessel_peaks[] = "bessel_peaks";
static const char __pyx_k_find_mid_max[] = "find_mid_max";
static const char __pyx_k_initializing[] = "_initializing";
static const char __pyx_k_is_coroutine[] = "_is_coroutine";
static const char __pyx_k_is_j0evencos[] = "is_j0evencos";
static const char __pyx_k_make_eoddcos[] = "make_eoddcos";
static const char __pyx_k_make_j0j1cos[] = "make_j0j1cos";
static const char __pyx_k_make_noddcos[] = "make_noddcos";
static const char __pyx_k_make_noddsin[] = "make_noddsin";
static const char __pyx_k_make_noddssb[] = "make_noddssb";
static const char __pyx_k_make_nrxysin[] = "make_nrxysin";
static const char __pyx_k_make_nsincos[] = "make_nsincos";
static const char __pyx_k_make_nxy1cos[] = "make_nxy1cos";
static const char __pyx_k_make_nxy1sin[] = "make_nxy1sin";
static const char __pyx_k_make_polyoid[] = "make_polyoid";
static const char __pyx_k_make_r2k2cos[] = "make_r2k2cos";
static const char __pyx_k_make_r2kfcos[] = "make_r2kfcos";
static const char __pyx_k_make_tanhsin[] = "make_tanhsin";
static const char __pyx_k_nkssb_interp[] = "nkssb_interp";
static const char __pyx_k_nrssb_interp[] = "nrssb_interp";
static const char __pyx_k_pysndlib_clm[] = "pysndlib.clm";
static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
static const char __pyx_k_round_interp[] = "round_interp";
static const char __pyx_k_stringsource[] = "<stringsource>";
static const char __pyx_k_use_setstate[] = "use_setstate";
static const char __pyx_k_Blackman_next[] = "Blackman.next";
static const char __pyx_k_Npos1cos_next[] = "Npos1cos.next";
static const char __pyx_k_Npos3cos_next[] = "Npos3cos.next";
static const char __pyx_k_Rkoddssb_next[] = "Rkoddssb.next";
static const char __pyx_k_blackman4_env[] = "blackman4_env";
static const char __pyx_k_class_getitem[] = "__class_getitem__";
static const char __pyx_k_cython_double[] = "cython.double";
static const char __pyx_k_initial_phase[] = "initial_phase";
static const char __pyx_k_is_moving_fft[] = "is_moving_fft";
static const char __pyx_k_is_moving_rms[] = "is_moving_rms";
static const char __pyx_k_is_moving_sum[] = "is_moving_sum";
static const char __pyx_k_is_pink_noise[] = "is_pink_noise";
static const char __pyx_k_is_sinc_train[] = "is_sinc_train";
static const char __pyx_k_make_blackman[] = "make_blackman";
static const char __pyx_k_make_npos1cos[] = "make_npos1cos";
static const char __pyx_k_make_npos3cos[] = "make_npos3cos";
static const char __pyx_k_make_one_pole[] = "make_one_pole";
static const char __pyx_k_make_polywave[] = "make_polywave";
static const char __pyx_k_make_rkoddssb[] = "make_rkoddssb";
static const char __pyx_k_moving_length[] = "moving_length";
static const char __pyx_k_mus_frequency[] = "mus_frequency";
static const char __pyx_k_mus_increment[] = "mus_increment";
static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
static const char __pyx_k_J0evencos_next[] = "J0evencos.next";
static const char __pyx_k_MovingFFT_next[] = "MovingFFT.next";
static const char __pyx_k_MovingRMS_next[] = "MovingRMS.next";
static const char __pyx_k_MovingSum_next[] = "MovingSum.next";
static const char __pyx_k_MovingVariance[] = "MovingVariance";
static const char __pyx_k_PinkNoise_next[] = "PinkNoise.next";
static const char __pyx_k_SincTrain_next[] = "SincTrain.next";
static const char __pyx_k_clamp_rxycos_r[] = "clamp_rxycos_r";
static const char __pyx_k_find_nsin5_max[] = "find_nsin5_max";
static const char __pyx_k_is_brown_noise[] = "is_brown_noise";
static const char __pyx_k_is_green_noise[] = "is_green_noise";
static const char __pyx_k_is_nchoosekcos[] = "is_nchoosekcos";
static const char __pyx_k_is_safe_rxycos[] = "is_safe_rxycos";
static const char __pyx_k_make_j0evencos[] = "make_j0evencos";
static const char __pyx_k_multi_expt_env[] = "multi_expt_env";
static const char __pyx_k_AdjustableOscil[] = "AdjustableOscil";
static const char __pyx_k_BrownNoise_next[] = "BrownNoise.next";
static const char __pyx_k_GreenNoise_next[] = "GreenNoise.next";
static const char __pyx_k_Izcos_mus_reset[] = "Izcos.mus_reset";
static const char __pyx_k_K3sin_mus_reset[] = "K3sin.mus_reset";
static const char __pyx_k_SafeRxycos_next[] = "SafeRxycos.next";
static const char __pyx_k_blackman_coeffs[] = "blackman_coeffs";
static const char __pyx_k_find_nxysin_max[] = "find_nxysin_max";
static const char __pyx_k_is_round_interp[] = "is_round_interp";
static const char __pyx_k_make_moving_fft[] = "make_moving_fft";
static const char __pyx_k_make_moving_rms[] = "make_moving_rms";
static const char __pyx_k_make_moving_sum[] = "make_moving_sum";
static const char __pyx_k_make_pink_noise[] = "make_pink_noise";
static const char __pyx_k_make_sinc_train[] = "make_sinc_train";
static const char __pyx_k_make_wave_train[] = "make_wave_train";
static const char __pyx_k_moving_variance[] = "moving_variance";
static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
static const char __pyx_k_GreenNoiseInterp[] = "GreenNoiseInterp";
static const char __pyx_k_Nchoosekcos_next[] = "Nchoosekcos.next";
static const char __pyx_k_RoundInterp_next[] = "RoundInterp.next";
static const char __pyx_k_Rssb_call_interp[] = "Rssb.call_interp";
static const char __pyx_k_adjustable_oscil[] = "adjustable_oscil";
static const char __pyx_k_find_noddsin_max[] = "find_noddsin_max";
static const char __pyx_k_is_moving_length[] = "is_moving_length";
static const char __pyx_k_make_brown_noise[] = "make_brown_noise";
static const char __pyx_k_make_green_noise[] = "make_green_noise";
static const char __pyx_k_make_nchoosekcos[] = "make_nchoosekcos";
static const char __pyx_k_make_pulse_train[] = "make_pulse_train";
static const char __pyx_k_make_rand_interp[] = "make_rand_interp";
static const char __pyx_k_make_safe_rxycos[] = "make_safe_rxycos";
static const char __pyx_k_CLMGenerator_next[] = "CLMGenerator.next";
static const char __pyx_k_MovingFFT_mus_run[] = "MovingFFT.mus_run";
static const char __pyx_k_Nkssb_call_interp[] = "Nkssb.call_interp";
static const char __pyx_k_Nrssb_call_interp[] = "Nrssb.call_interp";
static const char __pyx_k_make_round_interp[] = "make_round_interp";
static const char __pyx_k_make_table_lookup[] = "make_table_lookup";
static const char __pyx_k_pyx_unpickle_Bess[] = "__pyx_unpickle_Bess";
static const char __pyx_k_pyx_unpickle_Jcos[] = "__pyx_unpickle_Jcos";
static const char __pyx_k_pyx_unpickle_Nssb[] = "__pyx_unpickle_Nssb";
static const char __pyx_k_pyx_unpickle_Rcos[] = "__pyx_unpickle_Rcos";
static const char __pyx_k_pyx_unpickle_Rssb[] = "__pyx_unpickle_Rssb";
static const char __pyx_k_Blackman_mus_reset[] = "Blackman.mus_reset";
static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
static const char __pyx_k_find_nodds_mid_max[] = "find_nodds_mid_max";
static const char __pyx_k_green_noise_interp[] = "green_noise_interp";
static const char __pyx_k_is_moving_variance[] = "is_moving_variance";
static const char __pyx_k_make_moving_length[] = "make_moving_length";
static const char __pyx_k_make_triangle_wave[] = "make_triangle_wave";
static const char __pyx_k_pyx_unpickle_Abcos[] = "__pyx_unpickle_Abcos";
static const char __pyx_k_pyx_unpickle_Absin[] = "__pyx_unpickle_Absin";
static const char __pyx_k_pyx_unpickle_Asyfm[] = "__pyx_unpickle_Asyfm";
static const char __pyx_k_pyx_unpickle_Blsaw[] = "__pyx_unpickle_Blsaw";
static const char __pyx_k_pyx_unpickle_Ercos[] = "__pyx_unpickle_Ercos";
static const char __pyx_k_pyx_unpickle_Erssb[] = "__pyx_unpickle_Erssb";
static const char __pyx_k_pyx_unpickle_Fmssb[] = "__pyx_unpickle_Fmssb";
static const char __pyx_k_pyx_unpickle_Izcos[] = "__pyx_unpickle_Izcos";
static const char __pyx_k_pyx_unpickle_J2cos[] = "__pyx_unpickle_J2cos";
static const char __pyx_k_pyx_unpickle_Jjcos[] = "__pyx_unpickle_Jjcos";
static const char __pyx_k_pyx_unpickle_Jncos[] = "__pyx_unpickle_Jncos";
static const char __pyx_k_pyx_unpickle_Jpcos[] = "__pyx_unpickle_Jpcos";
static const char __pyx_k_pyx_unpickle_Jycos[] = "__pyx_unpickle_Jycos";
static const char __pyx_k_pyx_unpickle_K2cos[] = "__pyx_unpickle_K2cos";
static const char __pyx_k_pyx_unpickle_K2sin[] = "__pyx_unpickle_K2sin";
static const char __pyx_k_pyx_unpickle_K2ssb[] = "__pyx_unpickle_K2ssb";
static const char __pyx_k_pyx_unpickle_K3sin[] = "__pyx_unpickle_K3sin";
static const char __pyx_k_pyx_unpickle_N1cos[] = "__pyx_unpickle_N1cos";
static const char __pyx_k_pyx_unpickle_Ncos2[] = "__pyx_unpickle_Ncos2";
static const char __pyx_k_pyx_unpickle_Ncos4[] = "__pyx_unpickle_Ncos4";
static const char __pyx_k_pyx_unpickle_Ncos5[] = "__pyx_unpickle_Ncos5";
static const char __pyx_k_pyx_unpickle_Nkssb[] = "__pyx_unpickle_Nkssb";
static const char __pyx_k_pyx_unpickle_Npcos[] = "__pyx_unpickle_Npcos";
static const char __pyx_k_pyx_unpickle_Nrcos[] = "__pyx_unpickle_Nrcos";
static const char __pyx_k_pyx_unpickle_Nrssb[] = "__pyx_unpickle_Nrssb";
static const char __pyx_k_pyx_unpickle_Nsin5[] = "__pyx_unpickle_Nsin5";
static const char __pyx_k_pyx_unpickle_R2cos[] = "__pyx_unpickle_R2cos";
static const char __pyx_k_pyx_unpickle_R2ssb[] = "__pyx_unpickle_R2ssb";
static const char __pyx_k_pyx_unpickle_Rkcos[] = "__pyx_unpickle_Rkcos";
static const char __pyx_k_pyx_unpickle_Rksin[] = "__pyx_unpickle_Rksin";
static const char __pyx_k_pyx_unpickle_Rkssb[] = "__pyx_unpickle_Rkssb";
static const char __pyx_k_MovingVariance_next[] = "MovingVariance.next";
static const char __pyx_k_is_adjustable_oscil[] = "is_adjustable_oscil";
static const char __pyx_k_make_moving_average[] = "make_moving_average";
static const char __pyx_k_pysndlib_generators[] = "pysndlib.generators";
static const char __pyx_k_pyx_unpickle_Dblsum[] = "__pyx_unpickle_Dblsum";
static const char __pyx_k_pyx_unpickle_Krksin[] = "__pyx_unpickle_Krksin";
static const char __pyx_k_pyx_unpickle_Nxycos[] = "__pyx_unpickle_Nxycos";
static const char __pyx_k_pyx_unpickle_Nxysin[] = "__pyx_unpickle_Nxysin";
static const char __pyx_k_pyx_unpickle_Rkfcos[] = "__pyx_unpickle_Rkfcos";
static const char __pyx_k_pyx_unpickle_Rkfssb[] = "__pyx_unpickle_Rkfssb";
static const char __pyx_k_pyx_unpickle_Rxycos[] = "__pyx_unpickle_Rxycos";
static const char __pyx_k_pyx_unpickle_Rxysin[] = "__pyx_unpickle_Rxysin";
static const char __pyx_k_AdjustableOscil_next[] = "AdjustableOscil.next";
static const char __pyx_k_AdjustableSquareWave[] = "AdjustableSquareWave";
static const char __pyx_k_Bess___reduce_cython[] = "Bess.__reduce_cython__";
static const char __pyx_k_Jcos___reduce_cython[] = "Jcos.__reduce_cython__";
static const char __pyx_k_Nssb___reduce_cython[] = "Nssb.__reduce_cython__";
static const char __pyx_k_Rcos___reduce_cython[] = "Rcos.__reduce_cython__";
static const char __pyx_k_Rssb___reduce_cython[] = "Rssb.__reduce_cython__";
static const char __pyx_k_make_moving_variance[] = "make_moving_variance";
static const char __pyx_k_pyx_unpickle_Eoddcos[] = "__pyx_unpickle_Eoddcos";
static const char __pyx_k_pyx_unpickle_J0j1cos[] = "__pyx_unpickle_J0j1cos";
static const char __pyx_k_pyx_unpickle_Noddcos[] = "__pyx_unpickle_Noddcos";
static const char __pyx_k_pyx_unpickle_Noddsin[] = "__pyx_unpickle_Noddsin";
static const char __pyx_k_pyx_unpickle_Noddssb[] = "__pyx_unpickle_Noddssb";
static const char __pyx_k_pyx_unpickle_Nsincos[] = "__pyx_unpickle_Nsincos";
static const char __pyx_k_pyx_unpickle_Nxy1cos[] = "__pyx_unpickle_Nxy1cos";
static const char __pyx_k_pyx_unpickle_Nxy1sin[] = "__pyx_unpickle_Nxy1sin";
static const char __pyx_k_pyx_unpickle_R2k2cos[] = "__pyx_unpickle_R2k2cos";
static const char __pyx_k_pyx_unpickle_R2kfcos[] = "__pyx_unpickle_R2kfcos";
static const char __pyx_k_pyx_unpickle_Tanhsin[] = "__pyx_unpickle_Tanhsin";
static const char __pyx_k_Abcos___reduce_cython[] = "Abcos.__reduce_cython__";
static const char __pyx_k_Absin___reduce_cython[] = "Absin.__reduce_cython__";
static const char __pyx_k_Asyfm___reduce_cython[] = "Asyfm.__reduce_cython__";
static const char __pyx_k_Blsaw___reduce_cython[] = "Blsaw.__reduce_cython__";
static const char __pyx_k_Ercos___reduce_cython[] = "Ercos.__reduce_cython__";
static const char __pyx_k_Erssb___reduce_cython[] = "Erssb.__reduce_cython__";
static const char __pyx_k_Fmssb___reduce_cython[] = "Fmssb.__reduce_cython__";
static const char __pyx_k_GreenNoiseInterp_next[] = "GreenNoiseInterp.next";
static const char __pyx_k_Izcos___reduce_cython[] = "Izcos.__reduce_cython__";
static const char __pyx_k_J2cos___reduce_cython[] = "J2cos.__reduce_cython__";
static const char __pyx_k_Jjcos___reduce_cython[] = "Jjcos.__reduce_cython__";
static const char __pyx_k_Jncos___reduce_cython[] = "Jncos.__reduce_cython__";
static const char __pyx_k_Jpcos___reduce_cython[] = "Jpcos.__reduce_cython__";
static const char __pyx_k_Jycos___reduce_cython[] = "Jycos.__reduce_cython__";
static const char __pyx_k_K2cos___reduce_cython[] = "K2cos.__reduce_cython__";
static const char __pyx_k_K2sin___reduce_cython[] = "K2sin.__reduce_cython__";
static const char __pyx_k_K2ssb___reduce_cython[] = "K2ssb.__reduce_cython__";
static const char __pyx_k_K3sin___reduce_cython[] = "K3sin.__reduce_cython__";
static const char __pyx_k_N1cos___reduce_cython[] = "N1cos.__reduce_cython__";
static const char __pyx_k_Ncos2___reduce_cython[] = "Ncos2.__reduce_cython__";
static const char __pyx_k_Ncos4___reduce_cython[] = "Ncos4.__reduce_cython__";
static const char __pyx_k_Ncos5___reduce_cython[] = "Ncos5.__reduce_cython__";
static const char __pyx_k_Nkssb___reduce_cython[] = "Nkssb.__reduce_cython__";
static const char __pyx_k_Npcos___reduce_cython[] = "Npcos.__reduce_cython__";
static const char __pyx_k_Nrcos___reduce_cython[] = "Nrcos.__reduce_cython__";
static const char __pyx_k_Nrssb___reduce_cython[] = "Nrssb.__reduce_cython__";
static const char __pyx_k_Nsin5___reduce_cython[] = "Nsin5.__reduce_cython__";
static const char __pyx_k_R2cos___reduce_cython[] = "R2cos.__reduce_cython__";
static const char __pyx_k_R2ssb___reduce_cython[] = "R2ssb.__reduce_cython__";
static const char __pyx_k_Rkcos___reduce_cython[] = "Rkcos.__reduce_cython__";
static const char __pyx_k_Rksin___reduce_cython[] = "Rksin.__reduce_cython__";
static const char __pyx_k_Rkssb___reduce_cython[] = "Rkssb.__reduce_cython__";
static const char __pyx_k_WeightedMovingAverage[] = "WeightedMovingAverage";
static const char __pyx_k_is_green_noise_interp[] = "is_green_noise_interp";
static const char __pyx_k_make_adjustable_oscil[] = "make_adjustable_oscil";
static const char __pyx_k_pyx_unpickle_Blackman[] = "__pyx_unpickle_Blackman";
static const char __pyx_k_pyx_unpickle_Npos1cos[] = "__pyx_unpickle_Npos1cos";
static const char __pyx_k_pyx_unpickle_Npos3cos[] = "__pyx_unpickle_Npos3cos";
static const char __pyx_k_pyx_unpickle_Rkoddssb[] = "__pyx_unpickle_Rkoddssb";
static const char __pyx_k_AdjustableSawtoothWave[] = "AdjustableSawtoothWave";
static const char __pyx_k_AdjustableTriangleWave[] = "AdjustableTriangleWave";
static const char __pyx_k_Bess___setstate_cython[] = "Bess.__setstate_cython__";
static const char __pyx_k_Dblsum___reduce_cython[] = "Dblsum.__reduce_cython__";
static const char __pyx_k_Jcos___setstate_cython[] = "Jcos.__setstate_cython__";
static const char __pyx_k_Krksin___reduce_cython[] = "Krksin.__reduce_cython__";
static const char __pyx_k_Nssb___setstate_cython[] = "Nssb.__setstate_cython__";
static const char __pyx_k_Nxycos___reduce_cython[] = "Nxycos.__reduce_cython__";
static const char __pyx_k_Nxysin___reduce_cython[] = "Nxysin.__reduce_cython__";
static const char __pyx_k_Rcos___setstate_cython[] = "Rcos.__setstate_cython__";
static const char __pyx_k_Rkfcos___reduce_cython[] = "Rkfcos.__reduce_cython__";
static const char __pyx_k_Rkfssb___reduce_cython[] = "Rkfssb.__reduce_cython__";
static const char __pyx_k_Rssb___setstate_cython[] = "Rssb.__setstate_cython__";
static const char __pyx_k_Rxycos___reduce_cython[] = "Rxycos.__reduce_cython__";
static const char __pyx_k_Rxysin___reduce_cython[] = "Rxysin.__reduce_cython__";
static const char __pyx_k_adjustable_square_wave[] = "adjustable_square_wave";
static const char __pyx_k_last_moving_fft_window[] = "last_moving_fft_window";
static const char __pyx_k_pyx_unpickle_J0evencos[] = "__pyx_unpickle_J0evencos";
static const char __pyx_k_pyx_unpickle_MovingFFT[] = "__pyx_unpickle_MovingFFT";
static const char __pyx_k_pyx_unpickle_MovingRMS[] = "__pyx_unpickle_MovingRMS";
static const char __pyx_k_pyx_unpickle_MovingSum[] = "__pyx_unpickle_MovingSum";
static const char __pyx_k_pyx_unpickle_PinkNoise[] = "__pyx_unpickle_PinkNoise";
static const char __pyx_k_pyx_unpickle_SincTrain[] = "__pyx_unpickle_SincTrain";
static const char __pyx_k_Abcos___setstate_cython[] = "Abcos.__setstate_cython__";
static const char __pyx_k_Absin___setstate_cython[] = "Absin.__setstate_cython__";
static const char __pyx_k_Asyfm___setstate_cython[] = "Asyfm.__setstate_cython__";
static const char __pyx_k_Blsaw___setstate_cython[] = "Blsaw.__setstate_cython__";
static const char __pyx_k_Eoddcos___reduce_cython[] = "Eoddcos.__reduce_cython__";
static const char __pyx_k_Ercos___setstate_cython[] = "Ercos.__setstate_cython__";
static const char __pyx_k_Erssb___setstate_cython[] = "Erssb.__setstate_cython__";
static const char __pyx_k_Fmssb___setstate_cython[] = "Fmssb.__setstate_cython__";
static const char __pyx_k_Izcos___setstate_cython[] = "Izcos.__setstate_cython__";
static const char __pyx_k_J0j1cos___reduce_cython[] = "J0j1cos.__reduce_cython__";
static const char __pyx_k_J2cos___setstate_cython[] = "J2cos.__setstate_cython__";
static const char __pyx_k_Jjcos___setstate_cython[] = "Jjcos.__setstate_cython__";
static const char __pyx_k_Jncos___setstate_cython[] = "Jncos.__setstate_cython__";
static const char __pyx_k_Jpcos___setstate_cython[] = "Jpcos.__setstate_cython__";
static const char __pyx_k_Jycos___setstate_cython[] = "Jycos.__setstate_cython__";
static const char __pyx_k_K2cos___setstate_cython[] = "K2cos.__setstate_cython__";
static const char __pyx_k_K2sin___setstate_cython[] = "K2sin.__setstate_cython__";
static const char __pyx_k_K2ssb___setstate_cython[] = "K2ssb.__setstate_cython__";
static const char __pyx_k_K3sin___setstate_cython[] = "K3sin.__setstate_cython__";
static const char __pyx_k_N1cos___setstate_cython[] = "N1cos.__setstate_cython__";
static const char __pyx_k_Ncos2___setstate_cython[] = "Ncos2.__setstate_cython__";
static const char __pyx_k_Ncos4___setstate_cython[] = "Ncos4.__setstate_cython__";
static const char __pyx_k_Ncos5___setstate_cython[] = "Ncos5.__setstate_cython__";
static const char __pyx_k_Nkssb___setstate_cython[] = "Nkssb.__setstate_cython__";
static const char __pyx_k_Noddcos___reduce_cython[] = "Noddcos.__reduce_cython__";
static const char __pyx_k_Noddsin___reduce_cython[] = "Noddsin.__reduce_cython__";
static const char __pyx_k_Noddssb___reduce_cython[] = "Noddssb.__reduce_cython__";
static const char __pyx_k_Npcos___setstate_cython[] = "Npcos.__setstate_cython__";
static const char __pyx_k_Nrcos___setstate_cython[] = "Nrcos.__setstate_cython__";
static const char __pyx_k_Nrssb___setstate_cython[] = "Nrssb.__setstate_cython__";
static const char __pyx_k_Nsin5___setstate_cython[] = "Nsin5.__setstate_cython__";
static const char __pyx_k_Nsincos___reduce_cython[] = "Nsincos.__reduce_cython__";
static const char __pyx_k_Nxy1cos___reduce_cython[] = "Nxy1cos.__reduce_cython__";
static const char __pyx_k_Nxy1sin___reduce_cython[] = "Nxy1sin.__reduce_cython__";
static const char __pyx_k_R2cos___setstate_cython[] = "R2cos.__setstate_cython__";
static const char __pyx_k_R2k2cos___reduce_cython[] = "R2k2cos.__reduce_cython__";
static const char __pyx_k_R2kfcos___reduce_cython[] = "R2kfcos.__reduce_cython__";
static const char __pyx_k_R2ssb___setstate_cython[] = "R2ssb.__setstate_cython__";
static const char __pyx_k_Rkcos___setstate_cython[] = "Rkcos.__setstate_cython__";
static const char __pyx_k_Rksin___setstate_cython[] = "Rksin.__setstate_cython__";
static const char __pyx_k_Rkssb___setstate_cython[] = "Rkssb.__setstate_cython__";
static const char __pyx_k_Tanhsin___reduce_cython[] = "Tanhsin.__reduce_cython__";
static const char __pyx_k_make_green_noise_interp[] = "make_green_noise_interp";
static const char __pyx_k_partial_amps_and_phases[] = "partial_amps_and_phases";
static const char __pyx_k_pyx_unpickle_BrownNoise[] = "__pyx_unpickle_BrownNoise";
static const char __pyx_k_pyx_unpickle_GreenNoise[] = "__pyx_unpickle_GreenNoise";
static const char __pyx_k_pyx_unpickle_SafeRxycos[] = "__pyx_unpickle_SafeRxycos";
static const char __pyx_k_weighted_moving_average[] = "weighted_moving_average";
static const char __pyx_k_Blackman___reduce_cython[] = "Blackman.__reduce_cython__";
static const char __pyx_k_Dblsum___setstate_cython[] = "Dblsum.__setstate_cython__";
static const char __pyx_k_Krksin___setstate_cython[] = "Krksin.__setstate_cython__";
static const char __pyx_k_Npos1cos___reduce_cython[] = "Npos1cos.__reduce_cython__";
static const char __pyx_k_Npos3cos___reduce_cython[] = "Npos3cos.__reduce_cython__";
static const char __pyx_k_Nxycos___setstate_cython[] = "Nxycos.__setstate_cython__";
static const char __pyx_k_Nxysin___setstate_cython[] = "Nxysin.__setstate_cython__";
static const char __pyx_k_Rkfcos___setstate_cython[] = "Rkfcos.__setstate_cython__";
static const char __pyx_k_Rkfssb___setstate_cython[] = "Rkfssb.__setstate_cython__";
static const char __pyx_k_Rkoddssb___reduce_cython[] = "Rkoddssb.__reduce_cython__";
static const char __pyx_k_Rxycos___setstate_cython[] = "Rxycos.__setstate_cython__";
static const char __pyx_k_Rxysin___setstate_cython[] = "Rxysin.__setstate_cython__";
static const char __pyx_k_adjustable_sawtooth_wave[] = "adjustable_sawtooth_wave";
static const char __pyx_k_adjustable_triangle_wave[] = "adjustable_triangle_wave";
static const char __pyx_k_find_nsin5_max_locals_ns[] = "find_nsin5_max.<locals>.ns";
static const char __pyx_k_make_wave_train_with_env[] = "make_wave_train_with_env";
static const char __pyx_k_pyx_unpickle_Nchoosekcos[] = "__pyx_unpickle_Nchoosekcos";
static const char __pyx_k_pyx_unpickle_RoundInterp[] = "__pyx_unpickle_RoundInterp";
static const char __pyx_k_AdjustableSquareWave_next[] = "AdjustableSquareWave.next";
static const char __pyx_k_Eoddcos___setstate_cython[] = "Eoddcos.__setstate_cython__";
static const char __pyx_k_J0evencos___reduce_cython[] = "J0evencos.__reduce_cython__";
static const char __pyx_k_J0j1cos___setstate_cython[] = "J0j1cos.__setstate_cython__";
static const char __pyx_k_MovingFFT___reduce_cython[] = "MovingFFT.__reduce_cython__";
static const char __pyx_k_MovingRMS___reduce_cython[] = "MovingRMS.__reduce_cython__";
static const char __pyx_k_MovingSum___reduce_cython[] = "MovingSum.__reduce_cython__";
static const char __pyx_k_Noddcos___setstate_cython[] = "Noddcos.__setstate_cython__";
static const char __pyx_k_Noddsin___setstate_cython[] = "Noddsin.__setstate_cython__";
static const char __pyx_k_Noddssb___setstate_cython[] = "Noddssb.__setstate_cython__";
static const char __pyx_k_Nsincos___setstate_cython[] = "Nsincos.__setstate_cython__";
static const char __pyx_k_Nxy1cos___setstate_cython[] = "Nxy1cos.__setstate_cython__";
static const char __pyx_k_Nxy1sin___setstate_cython[] = "Nxy1sin.__setstate_cython__";
static const char __pyx_k_PinkNoise___reduce_cython[] = "PinkNoise.__reduce_cython__";
static const char __pyx_k_R2k2cos___setstate_cython[] = "R2k2cos.__setstate_cython__";
static const char __pyx_k_R2kfcos___setstate_cython[] = "R2kfcos.__setstate_cython__";
static const char __pyx_k_SafeRxycos_clamp_rxycos_r[] = "SafeRxycos.clamp_rxycos_r";
static const char __pyx_k_SincTrain___reduce_cython[] = "SincTrain.__reduce_cython__";
static const char __pyx_k_Tanhsin___setstate_cython[] = "Tanhsin.__setstate_cython__";
static const char __pyx_k_find_nxysin_max_locals_ns[] = "find_nxysin_max.<locals>.ns";
static const char __pyx_k_is_adjustable_square_wave[] = "is_adjustable_square_wave";
static const char __pyx_k_multi_expt_env_locals_fun[] = "multi_expt_env.<locals>.fun";
static const char __pyx_k_pyx_unpickle_CLMGenerator[] = "__pyx_unpickle_CLMGenerator";
static const char __pyx_k_pyx_unpickle_MovingLength[] = "__pyx_unpickle_MovingLength";
static const char __pyx_k_Blackman___setstate_cython[] = "Blackman.__setstate_cython__";
static const char __pyx_k_BrownNoise___reduce_cython[] = "BrownNoise.__reduce_cython__";
static const char __pyx_k_GreenNoise___reduce_cython[] = "GreenNoise.__reduce_cython__";
static const char __pyx_k_Npos1cos___setstate_cython[] = "Npos1cos.__setstate_cython__";
static const char __pyx_k_Npos3cos___setstate_cython[] = "Npos3cos.__setstate_cython__";
static const char __pyx_k_Rkoddssb___setstate_cython[] = "Rkoddssb.__setstate_cython__";
static const char __pyx_k_SafeRxycos___reduce_cython[] = "SafeRxycos.__reduce_cython__";
static const char __pyx_k_WeightedMovingAverage_next[] = "WeightedMovingAverage.next";
static const char __pyx_k_is_weighted_moving_average[] = "is_weighted_moving_average";
static const char __pyx_k_make_table_lookup_with_env[] = "make_table_lookup_with_env";
static const char __pyx_k_AdjustableSawtoothWave_next[] = "AdjustableSawtoothWave.next";
static const char __pyx_k_AdjustableTriangleWave_next[] = "AdjustableTriangleWave.next";
static const char __pyx_k_J0evencos___setstate_cython[] = "J0evencos.__setstate_cython__";
static const char __pyx_k_MovingFFT___setstate_cython[] = "MovingFFT.__setstate_cython__";
static const char __pyx_k_MovingRMS___setstate_cython[] = "MovingRMS.__setstate_cython__";
static const char __pyx_k_MovingSum___setstate_cython[] = "MovingSum.__setstate_cython__";
static const char __pyx_k_Nchoosekcos___reduce_cython[] = "Nchoosekcos.__reduce_cython__";
static const char __pyx_k_PinkNoise___setstate_cython[] = "PinkNoise.__setstate_cython__";
static const char __pyx_k_RoundInterp___reduce_cython[] = "RoundInterp.__reduce_cython__";
static const char __pyx_k_SincTrain___setstate_cython[] = "SincTrain.__setstate_cython__";
static const char __pyx_k_is_adjustable_sawtooth_wave[] = "is_adjustable_sawtooth_wave";
static const char __pyx_k_is_adjustable_triangle_wave[] = "is_adjustable_triangle_wave";
static const char __pyx_k_make_adjustable_square_wave[] = "make_adjustable_square_wave";
static const char __pyx_k_pyx_unpickle_MovingVariance[] = "__pyx_unpickle_MovingVariance";
static const char __pyx_k_src_pysndlib_generators_pyx[] = "src/pysndlib/generators.pyx";
static const char __pyx_k_BrownNoise___setstate_cython[] = "BrownNoise.__setstate_cython__";
static const char __pyx_k_CLMGenerator___reduce_cython[] = "CLMGenerator.__reduce_cython__";
static const char __pyx_k_GreenNoise___setstate_cython[] = "GreenNoise.__setstate_cython__";
static const char __pyx_k_MovingLength___reduce_cython[] = "MovingLength.__reduce_cython__";
static const char __pyx_k_SafeRxycos___setstate_cython[] = "SafeRxycos.__setstate_cython__";
static const char __pyx_k_make_weighted_moving_average[] = "make_weighted_moving_average";
static const char __pyx_k_pyx_unpickle_AdjustableOscil[] = "__pyx_unpickle_AdjustableOscil";
static const char __pyx_k_Nchoosekcos___setstate_cython[] = "Nchoosekcos.__setstate_cython__";
static const char __pyx_k_RoundInterp___setstate_cython[] = "RoundInterp.__setstate_cython__";
static const char __pyx_k_make_adjustable_sawtooth_wave[] = "make_adjustable_sawtooth_wave";
static const char __pyx_k_make_adjustable_triangle_wave[] = "make_adjustable_triangle_wave";
static const char __pyx_k_pyx_unpickle_GreenNoiseInterp[] = "__pyx_unpickle_GreenNoiseInterp";
static const char __pyx_k_CLMGenerator___setstate_cython[] = "CLMGenerator.__setstate_cython__";
static const char __pyx_k_MovingLength___setstate_cython[] = "MovingLength.__setstate_cython__";
static const char __pyx_k_MovingVariance___reduce_cython[] = "MovingVariance.__reduce_cython__";
static const char __pyx_k_Pyx_CFunc_double__lParenobject[] = "__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y.<locals>.wrap";
static const char __pyx_k_pyx_unpickle_AdjustableSawtoot[] = "__pyx_unpickle_AdjustableSawtoothWave";
static const char __pyx_k_pyx_unpickle_AdjustableSquareW[] = "__pyx_unpickle_AdjustableSquareWave";
static const char __pyx_k_pyx_unpickle_AdjustableTriangl[] = "__pyx_unpickle_AdjustableTriangleWave";
static const char __pyx_k_pyx_unpickle_ExponentiallyWeig[] = "__pyx_unpickle_ExponentiallyWeightedMovingAverage";
static const char __pyx_k_pyx_unpickle_WeightedMovingAve[] = "__pyx_unpickle_WeightedMovingAverage";
static const char __pyx_k_AdjustableOscil___reduce_cython[] = "AdjustableOscil.__reduce_cython__";
static const char __pyx_k_AdjustableSawtoothWave___reduce[] = "AdjustableSawtoothWave.__reduce_cython__";
static const char __pyx_k_AdjustableSquareWave___setstate[] = "AdjustableSquareWave.__setstate_cython__";
static const char __pyx_k_AdjustableTriangleWave___reduce[] = "AdjustableTriangleWave.__reduce_cython__";
static const char __pyx_k_find_nxysin_max_locals_find_mid[] = "find_nxysin_max.<locals>.find_mid_max";
static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import";
static const char __pyx_k_will_cause_bes_y0_to_return_inf[] = " will cause bes_y0 to return -inf";
static const char __pyx_k_AdjustableOscil___setstate_cytho[] = "AdjustableOscil.__setstate_cython__";
static const char __pyx_k_AdjustableSawtoothWave___setstat[] = "AdjustableSawtoothWave.__setstate_cython__";
static const char __pyx_k_AdjustableSquareWave___reduce_cy[] = "AdjustableSquareWave.__reduce_cython__";
static const char __pyx_k_AdjustableTriangleWave___setstat[] = "AdjustableTriangleWave.__setstate_cython__";
static const char __pyx_k_ExponentiallyWeightedMovingAvera[] = "ExponentiallyWeightedMovingAverage";
static const char __pyx_k_GreenNoiseInterp___reduce_cython[] = "GreenNoiseInterp.__reduce_cython__";
static const char __pyx_k_GreenNoiseInterp___setstate_cyth[] = "GreenNoiseInterp.__setstate_cython__";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())";
static const char __pyx_k_Jpcos_r_and_a_can_t_have_same_va[] = "Jpcos: r and a can't have same value";
static const char __pyx_k_MovingVariance___setstate_cython[] = "MovingVariance.__setstate_cython__";
static const char __pyx_k_WeightedMovingAverage___reduce_c[] = "WeightedMovingAverage.__reduce_cython__";
static const char __pyx_k_WeightedMovingAverage___setstate[] = "WeightedMovingAverage.__setstate_cython__";
static const char __pyx_k_enum_class_Polynomial_not_import[] = "enum class Polynomial not importable from pysndlib.clm. You are probably using a cpdef enum declared in a .pxd file that does not have a .py  or .pyx file.";
static const char __pyx_k_exponentially_weighted_moving_av[] = "exponentially_weighted_moving_average";
static const char __pyx_k_find_noddsin_max_locals_find_mid[] = "find_noddsin_max.<locals>.find_mid_max";
static const char __pyx_k_find_nsin5_max_locals_find_mid_m[] = "find_nsin5_max.<locals>.find_mid_max";
static const char __pyx_k_find_nxysin_max_locals_find_nodd[] = "find_nxysin_max.<locals>.find_nodds_mid_max";
static const char __pyx_k_is_exponentially_weighted_moving[] = "is_exponentially_weighted_moving_average";
static const char __pyx_k_make_exponentially_weighted_movi[] = "make_exponentially_weighted_moving_average";
static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import";
static const char __pyx_k_ExponentiallyWeightedMovingAvera_2[] = "ExponentiallyWeightedMovingAverage.next";
static const char __pyx_k_ExponentiallyWeightedMovingAvera_3[] = "ExponentiallyWeightedMovingAverage.__reduce_cython__";
static const char __pyx_k_ExponentiallyWeightedMovingAvera_4[] = "ExponentiallyWeightedMovingAverage.__setstate_cython__";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_2[] = "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_3[] = "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_4[] = "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_5[] = "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_6[] = "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_7[] = "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_8[] = "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_9[] = "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_10[] = "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_11[] = "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_12[] = "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_13[] = "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_14[] = "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_15[] = "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_16[] = "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_17[] = "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_18[] = "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_19[] = "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_20[] = "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_21[] = "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_22[] = "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_23[] = "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_24[] = "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_25[] = "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_26[] = "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_27[] = "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_28[] = "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_29[] = "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_30[] = "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_31[] = "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_32[] = "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_33[] = "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_34[] = "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_35[] = "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_36[] = "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_37[] = "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_38[] = "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_39[] = "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_40[] = "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_41[] = "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_42[] = "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_43[] = "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_44[] = "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_45[] = "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_46[] = "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_47[] = "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_48[] = "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))";
static const char __pyx_k_Incompatible_checksums_0x_x_vs_0_49[] = "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))";
/* #### Code section: decls ### */
static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_wrap(PyObject *__pyx_self, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_next(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Nssb___init__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_2next(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Nssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Nssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Nssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Nssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_make_nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_2nssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4is_nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6nodds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8find_nxysin_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_ratio); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin___init__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_2next(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxysin_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10make_nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12nxysin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14is_nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxycos___init__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_2next(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxycos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Nxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16make_nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_18nxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20is_nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1cos___init__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_2next(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22make_nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_24nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_26is_nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1sin___init__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_2next(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_28make_nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_30nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_32is_nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_680__defaults__(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16find_noddsin_max_find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34find_noddsin_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddsin___init__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_2next(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_36make_noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_38noddsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_40is_noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddcos___init__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_2next(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddcos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_42make_noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_44noddcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_46is_noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddssb___init__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_2next(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Noddssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_48make_noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_50noddssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_52is_noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos2___init__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_2next(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_4__call__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos2_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_1n___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos2_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos2_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_54make_ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_56ncos2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_58is_ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_next(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_60make_ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_62ncos4(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_64is_ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Npcos___init__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_2next(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Npcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Npcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Npcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_66make_npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_68npcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_70is_npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos5___init__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_2next(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_4__call__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos5_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_1n___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos5_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ncos5_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_72make_ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_74ncos5(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_76is_ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_78find_nsin5_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nsin5___init__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_2next(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_4__call__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nsin5_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nsin5_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nsin5_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nsin5_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_80make_nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_82nsin5(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_84is_nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_86make_nrsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_88nrsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_90is_nrsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos___init__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2next(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2r1___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_2r1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2e1___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_2e1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2e2___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_2e2_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_7trouble___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrcos_7trouble_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_92make_nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_94nrcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_96is_nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb___init__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_2next(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_6call_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_6interp___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_6interp_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_2rn___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_2rn_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_3rn1___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_3rn1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nrssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_98make_nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_100nrssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_102nrssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_104is_nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb___init__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_2next(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_4call_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_6__call__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_6interp___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Nkssb_6interp_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_106make_nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_108nkssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_110nkssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_112is_nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos___init__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_2next(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_2n2___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_2n2_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4cosn___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_4cosn_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Nsincos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_114make_nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_116nsincos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_118is_nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5N1cos___init__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_2next(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5N1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5N1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5N1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_120make_n1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_122n1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_124is_n1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos1cos___init__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_2next(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_126make_npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_128npos1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_130is_npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos3cos___init__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_2next(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos3cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Npos3cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_132make_npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_134npos3cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_136is_npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos___init__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2next(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency___get__(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency_2__set__(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4rrp1___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_4rrp1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4rrm1___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_4rrm1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_138make_rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_140rcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_142is_rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb___init__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_2next(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_4call_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_6__call__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Rssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_144make_rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_146rssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_148rssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_150is_rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin___init__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2next(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_4__call__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxysin_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_152make_rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_154rxysin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_156is_rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos___init__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2next(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rxycos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_158make_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_160rxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_162is_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos___init__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, CYTHON_UNUSED PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_2clamp_rxycos_r(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_4next(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_6__call__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_164make_safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_166safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_168is_safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos___init__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_2next(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_4__call__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6offset___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_6offset_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6scaler___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_6scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Ercos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_170make_ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_172ercos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_174is_ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Erssb___init__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_2next(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Erssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Erssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Erssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Erssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_176make_erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_178erssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_180is_erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2cos___init__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_2next(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_182make_r2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_184r2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_186is_r2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb___init__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_2next(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_4__call__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_3osc___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_188make_r2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_190r2ssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_192is_r2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos___init__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_2next(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_194make_eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_196eoddcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_198is_eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos___init__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_2next(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_200make_rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_202rkcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_204is_rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rksin___init__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_2next(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_4__call__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rksin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rksin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rksin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_206make_rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_208rksin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_210is_rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_212make_rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_214rkssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_216is_rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos___init__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_2next(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_218make_rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_220rkfcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_222is_rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Rkfssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_224make_rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_226rkfssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_228is_rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos___init__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_2next(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2kfcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_230make_r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_232r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_234is_r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2sin___init__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_2next(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_4__call__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_236make_k2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_238k2sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_240is_k2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2cos___init__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_2next(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_242make_k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_244k2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_246is_k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2ssb___init__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_2next(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_4__call__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2ssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2ssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K2ssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_248make_k2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_250k2ssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_252is_k2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Dblsum___init__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_2next(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_4__call__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Dblsum_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_1r___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Dblsum_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Dblsum_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_254make_dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_256dblsum(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_258is_dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_260make_rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_262rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_264is_rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Krksin___init__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_2next(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_4__call__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Krksin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Krksin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_6Krksin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_266make_krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_268krksin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_270is_krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin___init__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_2next(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_4__call__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Absin_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_272make_absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_274absin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_276is_absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos___init__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_2next(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_1b___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_1b_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_2ab___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_2ab_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Abcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_278make_abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_a, PyObject *__pyx_v_b); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_280abcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_282is_abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2k2cos___init__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_2next(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2k2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7R2k2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_284make_r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_286r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_288is_r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Blsaw___init__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_2next(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_4__call__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Blsaw_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_1n___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Blsaw_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_1r___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Blsaw_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Blsaw_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_290make_blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_292blsaw(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_294is_blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm___init__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_2next(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_4next_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_6next_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_8__call__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_1r___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5index___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Asyfm_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_10__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_12__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_296make_asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_298asyfm(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_300asyfm_i(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_302asyfm_j(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_304is_asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Bess___init__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_2next(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_4__call__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Bess_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_1n___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Bess_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Bess_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Bess_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_306make_bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_308bess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_310is_bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos___init__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_2next(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jjcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_312make_jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_314jjcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_316is_jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9J0evencos___init__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_2next(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_4__call__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9J0evencos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_5index___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9J0evencos_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9J0evencos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_318make_j0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_320j0evencos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_322is_j0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos___init__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_2next(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5J2cos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_324make_j2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_326j2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_328is_j2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos___init__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_2next(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jpcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_330make_jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_332jpcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_334is_jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos___init__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_2next(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_2ra___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jncos_2ra_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_336make_jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_338jncos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_340is_jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7J0j1cos___init__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_2next(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_5index___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7J0j1cos_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7J0j1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_342make_j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_344j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_346is_j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jycos___init__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_2next(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Jycos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_348make_jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_350jycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_352is_jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Jcos___init__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r, PyObject *__pyx_v_a); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_2next(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Jcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Jcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Jcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_4Jcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_354make_jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_356jcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_358is_jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Blackman___init__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_frequency, int __pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_2next(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_4__call__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_6mus_reset(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Blackman_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_1n___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Blackman_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Blackman_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_8Blackman_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_360make_blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_362blackman(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_364is_blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb___init__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_2next(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5index___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_3idx___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb_3idx_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Fmssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_366make_fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_index); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_368fmssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_370is_fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K3sin___init__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_frequency); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_2next(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_4__call__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_6mus_reset(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K3sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_6coeffs___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_4__del__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5K3sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_372make_k3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_374k3sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_376is_k3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos___init__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_2next(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_6mus_reset(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_2dc___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_2dc_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_5inorm___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_5Izcos_5inorm_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_378make_izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_380izcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_382is_izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_384make_adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_386adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_388is_adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_390make_adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_392adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_394is_adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_396make_adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_398adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_400is_adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_402make_adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_404adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_406is_adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_408make_table_lookup_with_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, PyObject *__pyx_v_size); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_410make_wave_train_with_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, PyObject *__pyx_v_size); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp___init__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_2next(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_4__call__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_1n___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_4__del__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_3flt___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_4__del__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_412make_round_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_414round_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_416is_round_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_418sine_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_420square_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_422blackman4_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14multi_expt_env_fun(PyObject *__pyx_self, PyObject *__pyx_v_y); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_424multi_expt_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e, PyObject *__pyx_v_expts); /* proto */
static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos___init__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_2next(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_426make_nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_428nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_430is_nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain___init__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_2next(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_4__call__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, int __pyx_v_val); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_1n___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_5angle___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_10original_n___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_10original_n_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_432make_sinc_train(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_434sinc_train(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_436is_sinc_train(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9PinkNoise___init__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_2next(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_1n___get__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9PinkNoise_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_4data___get__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_2__set__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_4__del__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_438make_pink_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_440pink_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_442is_pink_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise___init__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_2next(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_4prev___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_4prev_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_3sum___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_2gr___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_4__del__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_444make_brown_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_446brown_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_448is_brown_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise___init__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_2next(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4prev___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_4prev_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_3sum___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_2gr___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_4__del__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_3low___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_3low_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4high___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_10GreenNoise_4high_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_450make_green_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_452green_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_454is_green_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp___init__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2next(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4__call__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_456make_green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_458green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_460is_green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingSum___init__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_2next(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingSum_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_3gen___get__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_462make_moving_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_464moving_sum(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_466is_moving_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance___init__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_2next(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_468make_moving_variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_470moving_variance(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_472is_moving_variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingRMS___init__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_2next(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingRMS_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_3gen___get__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_474make_moving_rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_476moving_rms(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_478is_moving_rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_12MovingLength___init__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12MovingLength_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_12MovingLength_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_480make_moving_length(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_482moving_length(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_484is_moving_length(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage___init__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_2next(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_4__call__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_4__del__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_486make_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_488weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_490is_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage___init__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_2next(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_4__call__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n___get__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen___get__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_492make_exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_494exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_gen, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_496is_exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_498make_polyoid(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_partial_amps_and_phases); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_500polyoid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_502is_polyoid(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_504polyoid_tn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_506polyoid_un(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Tanhsin___init__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_initial_phase); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_2next(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_4__call__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Tanhsin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value); /* proto */
static int __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_508make_tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_510tanhsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_gen, double __pyx_v_fm); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_512is_tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static int __pyx_pf_8pysndlib_10generators_9MovingFFT___init__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v_reader, PyObject *__pyx_v_n, PyObject *__pyx_v_hop, PyObject *__pyx_v_outctr); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_2next(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, double __pyx_v_x); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, double __pyx_v_insig); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_8mus_data___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_6mus_run(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v_arg1, PyObject *__pyx_v_arg2); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_514make_moving_fft(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_reader, PyObject *__pyx_v_n, PyObject *__pyx_v_hop, PyObject *__pyx_v_outctr); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_516moving_fft(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_518is_moving_fft(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_520__pyx_unpickle_CLMGenerator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_522__pyx_unpickle_Nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_524__pyx_unpickle_Nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_526__pyx_unpickle_Nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_528__pyx_unpickle_Nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_530__pyx_unpickle_Nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_532__pyx_unpickle_Noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_534__pyx_unpickle_Noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_536__pyx_unpickle_Noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_538__pyx_unpickle_Ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_540__pyx_unpickle_Ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_542__pyx_unpickle_Npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_544__pyx_unpickle_Ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_546__pyx_unpickle_Nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_548__pyx_unpickle_Nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_550__pyx_unpickle_Nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_552__pyx_unpickle_Nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_554__pyx_unpickle_Nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_556__pyx_unpickle_N1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_558__pyx_unpickle_Npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_560__pyx_unpickle_Npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_562__pyx_unpickle_Rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_564__pyx_unpickle_Rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_566__pyx_unpickle_Rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_568__pyx_unpickle_Rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_570__pyx_unpickle_SafeRxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_572__pyx_unpickle_Ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_574__pyx_unpickle_Erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_576__pyx_unpickle_R2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_578__pyx_unpickle_R2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_580__pyx_unpickle_Eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_582__pyx_unpickle_Rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_584__pyx_unpickle_Rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_586__pyx_unpickle_Rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_588__pyx_unpickle_Rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_590__pyx_unpickle_Rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_592__pyx_unpickle_R2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_594__pyx_unpickle_K2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_596__pyx_unpickle_K2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_598__pyx_unpickle_K2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_600__pyx_unpickle_Dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_602__pyx_unpickle_Rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_604__pyx_unpickle_Krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_606__pyx_unpickle_Absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_608__pyx_unpickle_Abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_610__pyx_unpickle_R2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_612__pyx_unpickle_Blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_614__pyx_unpickle_Asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_616__pyx_unpickle_Bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_618__pyx_unpickle_Jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_620__pyx_unpickle_J0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_622__pyx_unpickle_J2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_624__pyx_unpickle_Jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_626__pyx_unpickle_Jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_628__pyx_unpickle_J0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_630__pyx_unpickle_Jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_632__pyx_unpickle_Jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_634__pyx_unpickle_Blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_636__pyx_unpickle_Fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_638__pyx_unpickle_K3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_640__pyx_unpickle_Izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_642__pyx_unpickle_AdjustableSquareWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_644__pyx_unpickle_AdjustableTriangleWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_646__pyx_unpickle_AdjustableSawtoothWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_648__pyx_unpickle_AdjustableOscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_650__pyx_unpickle_RoundInterp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_652__pyx_unpickle_Nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_654__pyx_unpickle_SincTrain(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_656__pyx_unpickle_PinkNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_658__pyx_unpickle_BrownNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_660__pyx_unpickle_GreenNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_662__pyx_unpickle_GreenNoiseInterp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_664__pyx_unpickle_MovingSum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_666__pyx_unpickle_MovingVariance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_668__pyx_unpickle_MovingRMS(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_670__pyx_unpickle_MovingLength(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_672__pyx_unpickle_WeightedMovingAverage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_674__pyx_unpickle_ExponentiallyWeightedMovingAverage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_676__pyx_unpickle_Tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_pf_8pysndlib_10generators_678__pyx_unpickle_MovingFFT(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
static PyObject *__pyx_tp_new_8pysndlib_10generators_CLMGenerator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxysin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxycos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxy1cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxy1sin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos2(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos4(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Npcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos5(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nsin5(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nrcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nrssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nkssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nsincos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_N1cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Npos1cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Npos3cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rxysin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rxycos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_SafeRxycos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Ercos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Erssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_R2cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_R2ssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Eoddcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rksin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkfcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkfssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_R2kfcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_K2sin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_K2cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_K2ssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Dblsum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkoddssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Krksin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Absin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Abcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_R2k2cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Blsaw(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Asyfm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Bess(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Jjcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_J0evencos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_J2cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Jpcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Jncos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_J0j1cos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Jycos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Jcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Blackman(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Fmssb(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_K3sin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Izcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableSquareWave(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableTriangleWave(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableSawtoothWave(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableOscil(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_RoundInterp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Nchoosekcos(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_SincTrain(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_PinkNoise(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_BrownNoise(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_GreenNoise(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_GreenNoiseInterp(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingSum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingVariance(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingRMS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingLength(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_WeightedMovingAverage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_ExponentiallyWeightedMovingAverage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Tanhsin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddsin(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingFFT(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
/* #### Code section: late_includes ### */
/* #### Code section: module_state ### */
typedef struct {
  PyObject *__pyx_d;
  PyObject *__pyx_b;
  PyObject *__pyx_cython_runtime;
  PyObject *__pyx_empty_tuple;
  PyObject *__pyx_empty_bytes;
  PyObject *__pyx_empty_unicode;
  #ifdef __Pyx_CyFunction_USED
  PyTypeObject *__pyx_CyFunctionType;
  #endif
  #ifdef __Pyx_FusedFunction_USED
  PyTypeObject *__pyx_FusedFunctionType;
  #endif
  #ifdef __Pyx_Generator_USED
  PyTypeObject *__pyx_GeneratorType;
  #endif
  #ifdef __Pyx_IterableCoroutine_USED
  PyTypeObject *__pyx_IterableCoroutineType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineAwaitType;
  #endif
  #ifdef __Pyx_Coroutine_USED
  PyTypeObject *__pyx_CoroutineType;
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_7cpython_4type_type;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_5numpy_dtype;
  PyTypeObject *__pyx_ptype_5numpy_flatiter;
  PyTypeObject *__pyx_ptype_5numpy_broadcast;
  PyTypeObject *__pyx_ptype_5numpy_ndarray;
  PyTypeObject *__pyx_ptype_5numpy_generic;
  PyTypeObject *__pyx_ptype_5numpy_number;
  PyTypeObject *__pyx_ptype_5numpy_integer;
  PyTypeObject *__pyx_ptype_5numpy_signedinteger;
  PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
  PyTypeObject *__pyx_ptype_5numpy_inexact;
  PyTypeObject *__pyx_ptype_5numpy_floating;
  PyTypeObject *__pyx_ptype_5numpy_complexfloating;
  PyTypeObject *__pyx_ptype_5numpy_flexible;
  PyTypeObject *__pyx_ptype_5numpy_character;
  PyTypeObject *__pyx_ptype_5numpy_ufunc;
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  #if CYTHON_USE_MODULE_STATE
  #endif
  PyTypeObject *__pyx_ptype_8pysndlib_3clm_mus_any;
  #if CYTHON_USE_MODULE_STATE
  PyObject *__pyx_type_8pysndlib_10generators_CLMGenerator;
  PyObject *__pyx_type_8pysndlib_10generators_Nssb;
  PyObject *__pyx_type_8pysndlib_10generators_Nxysin;
  PyObject *__pyx_type_8pysndlib_10generators_Nxycos;
  PyObject *__pyx_type_8pysndlib_10generators_Nxy1cos;
  PyObject *__pyx_type_8pysndlib_10generators_Nxy1sin;
  PyObject *__pyx_type_8pysndlib_10generators_Noddcos;
  PyObject *__pyx_type_8pysndlib_10generators_Noddssb;
  PyObject *__pyx_type_8pysndlib_10generators_Ncos2;
  PyObject *__pyx_type_8pysndlib_10generators_Ncos4;
  PyObject *__pyx_type_8pysndlib_10generators_Npcos;
  PyObject *__pyx_type_8pysndlib_10generators_Ncos5;
  PyObject *__pyx_type_8pysndlib_10generators_Nsin5;
  PyObject *__pyx_type_8pysndlib_10generators_Nrcos;
  PyObject *__pyx_type_8pysndlib_10generators_Nrssb;
  PyObject *__pyx_type_8pysndlib_10generators_Nkssb;
  PyObject *__pyx_type_8pysndlib_10generators_Nsincos;
  PyObject *__pyx_type_8pysndlib_10generators_N1cos;
  PyObject *__pyx_type_8pysndlib_10generators_Npos1cos;
  PyObject *__pyx_type_8pysndlib_10generators_Npos3cos;
  PyObject *__pyx_type_8pysndlib_10generators_Rcos;
  PyObject *__pyx_type_8pysndlib_10generators_Rssb;
  PyObject *__pyx_type_8pysndlib_10generators_Rxysin;
  PyObject *__pyx_type_8pysndlib_10generators_Rxycos;
  PyObject *__pyx_type_8pysndlib_10generators_SafeRxycos;
  PyObject *__pyx_type_8pysndlib_10generators_Ercos;
  PyObject *__pyx_type_8pysndlib_10generators_Erssb;
  PyObject *__pyx_type_8pysndlib_10generators_R2cos;
  PyObject *__pyx_type_8pysndlib_10generators_R2ssb;
  PyObject *__pyx_type_8pysndlib_10generators_Eoddcos;
  PyObject *__pyx_type_8pysndlib_10generators_Rkcos;
  PyObject *__pyx_type_8pysndlib_10generators_Rksin;
  PyObject *__pyx_type_8pysndlib_10generators_Rkssb;
  PyObject *__pyx_type_8pysndlib_10generators_Rkfcos;
  PyObject *__pyx_type_8pysndlib_10generators_Rkfssb;
  PyObject *__pyx_type_8pysndlib_10generators_R2kfcos;
  PyObject *__pyx_type_8pysndlib_10generators_K2sin;
  PyObject *__pyx_type_8pysndlib_10generators_K2cos;
  PyObject *__pyx_type_8pysndlib_10generators_K2ssb;
  PyObject *__pyx_type_8pysndlib_10generators_Dblsum;
  PyObject *__pyx_type_8pysndlib_10generators_Rkoddssb;
  PyObject *__pyx_type_8pysndlib_10generators_Krksin;
  PyObject *__pyx_type_8pysndlib_10generators_Absin;
  PyObject *__pyx_type_8pysndlib_10generators_Abcos;
  PyObject *__pyx_type_8pysndlib_10generators_R2k2cos;
  PyObject *__pyx_type_8pysndlib_10generators_Blsaw;
  PyObject *__pyx_type_8pysndlib_10generators_Asyfm;
  PyObject *__pyx_type_8pysndlib_10generators_Bess;
  PyObject *__pyx_type_8pysndlib_10generators_Jjcos;
  PyObject *__pyx_type_8pysndlib_10generators_J0evencos;
  PyObject *__pyx_type_8pysndlib_10generators_J2cos;
  PyObject *__pyx_type_8pysndlib_10generators_Jpcos;
  PyObject *__pyx_type_8pysndlib_10generators_Jncos;
  PyObject *__pyx_type_8pysndlib_10generators_J0j1cos;
  PyObject *__pyx_type_8pysndlib_10generators_Jycos;
  PyObject *__pyx_type_8pysndlib_10generators_Jcos;
  PyObject *__pyx_type_8pysndlib_10generators_Blackman;
  PyObject *__pyx_type_8pysndlib_10generators_Fmssb;
  PyObject *__pyx_type_8pysndlib_10generators_K3sin;
  PyObject *__pyx_type_8pysndlib_10generators_Izcos;
  PyObject *__pyx_type_8pysndlib_10generators_AdjustableSquareWave;
  PyObject *__pyx_type_8pysndlib_10generators_AdjustableTriangleWave;
  PyObject *__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave;
  PyObject *__pyx_type_8pysndlib_10generators_AdjustableOscil;
  PyObject *__pyx_type_8pysndlib_10generators_RoundInterp;
  PyObject *__pyx_type_8pysndlib_10generators_Nchoosekcos;
  PyObject *__pyx_type_8pysndlib_10generators_SincTrain;
  PyObject *__pyx_type_8pysndlib_10generators_PinkNoise;
  PyObject *__pyx_type_8pysndlib_10generators_BrownNoise;
  PyObject *__pyx_type_8pysndlib_10generators_GreenNoise;
  PyObject *__pyx_type_8pysndlib_10generators_GreenNoiseInterp;
  PyObject *__pyx_type_8pysndlib_10generators_MovingSum;
  PyObject *__pyx_type_8pysndlib_10generators_MovingVariance;
  PyObject *__pyx_type_8pysndlib_10generators_MovingRMS;
  PyObject *__pyx_type_8pysndlib_10generators_MovingLength;
  PyObject *__pyx_type_8pysndlib_10generators_WeightedMovingAverage;
  PyObject *__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
  PyObject *__pyx_type_8pysndlib_10generators_Tanhsin;
  PyObject *__pyx_type_8pysndlib_10generators_Noddsin;
  PyObject *__pyx_type_8pysndlib_10generators_MovingFFT;
  PyObject *__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max;
  PyObject *__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max;
  PyObject *__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max;
  PyObject *__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env;
  PyObject *__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y;
  #endif
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_CLMGenerator;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nxysin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nxycos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nxy1cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nxy1sin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Noddcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Noddssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Ncos2;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Ncos4;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Npcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Ncos5;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nsin5;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nrcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nrssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nkssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nsincos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_N1cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Npos1cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Npos3cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rxysin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rxycos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_SafeRxycos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Ercos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Erssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_R2cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_R2ssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Eoddcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rkcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rksin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rkssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rkfcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rkfssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_R2kfcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_K2sin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_K2cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_K2ssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Dblsum;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Rkoddssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Krksin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Absin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Abcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_R2k2cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Blsaw;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Asyfm;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Bess;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Jjcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_J0evencos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_J2cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Jpcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Jncos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_J0j1cos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Jycos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Jcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Blackman;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Fmssb;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_K3sin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Izcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_AdjustableOscil;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_RoundInterp;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Nchoosekcos;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_SincTrain;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_PinkNoise;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_BrownNoise;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_GreenNoise;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_MovingSum;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_MovingVariance;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_MovingRMS;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_MovingLength;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Tanhsin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_Noddsin;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators_MovingFFT;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max;
  PyTypeObject *__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env;
  PyTypeObject *__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y;
  PyObject *__pyx_kp_u_;
  PyObject *__pyx_n_s_Abcos;
  PyObject *__pyx_n_s_Abcos___reduce_cython;
  PyObject *__pyx_n_s_Abcos___setstate_cython;
  PyObject *__pyx_n_s_Abcos_next;
  PyObject *__pyx_n_s_Absin;
  PyObject *__pyx_n_s_Absin___reduce_cython;
  PyObject *__pyx_n_s_Absin___setstate_cython;
  PyObject *__pyx_n_s_Absin_next;
  PyObject *__pyx_n_s_AdjustableOscil;
  PyObject *__pyx_n_s_AdjustableOscil___reduce_cython;
  PyObject *__pyx_n_s_AdjustableOscil___setstate_cytho;
  PyObject *__pyx_n_s_AdjustableOscil_next;
  PyObject *__pyx_n_s_AdjustableSawtoothWave;
  PyObject *__pyx_n_s_AdjustableSawtoothWave___reduce;
  PyObject *__pyx_n_s_AdjustableSawtoothWave___setstat;
  PyObject *__pyx_n_s_AdjustableSawtoothWave_next;
  PyObject *__pyx_n_s_AdjustableSquareWave;
  PyObject *__pyx_n_s_AdjustableSquareWave___reduce_cy;
  PyObject *__pyx_n_s_AdjustableSquareWave___setstate;
  PyObject *__pyx_n_s_AdjustableSquareWave_next;
  PyObject *__pyx_n_s_AdjustableTriangleWave;
  PyObject *__pyx_n_s_AdjustableTriangleWave___reduce;
  PyObject *__pyx_n_s_AdjustableTriangleWave___setstat;
  PyObject *__pyx_n_s_AdjustableTriangleWave_next;
  PyObject *__pyx_n_s_Asyfm;
  PyObject *__pyx_n_s_Asyfm___reduce_cython;
  PyObject *__pyx_n_s_Asyfm___setstate_cython;
  PyObject *__pyx_n_s_Asyfm_next;
  PyObject *__pyx_n_s_Asyfm_next_i;
  PyObject *__pyx_n_s_Asyfm_next_j;
  PyObject *__pyx_n_s_BOTH_KINDS;
  PyObject *__pyx_n_s_Bess;
  PyObject *__pyx_n_s_Bess___reduce_cython;
  PyObject *__pyx_n_s_Bess___setstate_cython;
  PyObject *__pyx_n_s_Bess_next;
  PyObject *__pyx_n_s_Blackman;
  PyObject *__pyx_n_s_Blackman___reduce_cython;
  PyObject *__pyx_n_s_Blackman___setstate_cython;
  PyObject *__pyx_n_s_Blackman_mus_reset;
  PyObject *__pyx_n_s_Blackman_next;
  PyObject *__pyx_n_s_Blsaw;
  PyObject *__pyx_n_s_Blsaw___reduce_cython;
  PyObject *__pyx_n_s_Blsaw___setstate_cython;
  PyObject *__pyx_n_s_Blsaw_next;
  PyObject *__pyx_n_s_BrownNoise;
  PyObject *__pyx_n_s_BrownNoise___reduce_cython;
  PyObject *__pyx_n_s_BrownNoise___setstate_cython;
  PyObject *__pyx_n_s_BrownNoise_next;
  PyObject *__pyx_n_s_CLMGenerator;
  PyObject *__pyx_n_s_CLMGenerator___reduce_cython;
  PyObject *__pyx_n_s_CLMGenerator___setstate_cython;
  PyObject *__pyx_n_s_CLMGenerator_next;
  PyObject *__pyx_n_s_Dblsum;
  PyObject *__pyx_n_s_Dblsum___reduce_cython;
  PyObject *__pyx_n_s_Dblsum___setstate_cython;
  PyObject *__pyx_n_s_Dblsum_next;
  PyObject *__pyx_n_s_EITHER_KIND;
  PyObject *__pyx_n_s_Eoddcos;
  PyObject *__pyx_n_s_Eoddcos___reduce_cython;
  PyObject *__pyx_n_s_Eoddcos___setstate_cython;
  PyObject *__pyx_n_s_Eoddcos_next;
  PyObject *__pyx_n_s_Ercos;
  PyObject *__pyx_n_s_Ercos___reduce_cython;
  PyObject *__pyx_n_s_Ercos___setstate_cython;
  PyObject *__pyx_n_s_Ercos_next;
  PyObject *__pyx_n_s_Erssb;
  PyObject *__pyx_n_s_Erssb___reduce_cython;
  PyObject *__pyx_n_s_Erssb___setstate_cython;
  PyObject *__pyx_n_s_Erssb_next;
  PyObject *__pyx_n_s_ExponentiallyWeightedMovingAvera;
  PyObject *__pyx_n_s_ExponentiallyWeightedMovingAvera_2;
  PyObject *__pyx_n_s_ExponentiallyWeightedMovingAvera_3;
  PyObject *__pyx_n_s_ExponentiallyWeightedMovingAvera_4;
  PyObject *__pyx_n_s_FIRST_KIND;
  PyObject *__pyx_n_s_Fmssb;
  PyObject *__pyx_n_s_Fmssb___reduce_cython;
  PyObject *__pyx_n_s_Fmssb___setstate_cython;
  PyObject *__pyx_n_s_Fmssb_next;
  PyObject *__pyx_n_s_GreenNoise;
  PyObject *__pyx_n_s_GreenNoiseInterp;
  PyObject *__pyx_n_s_GreenNoiseInterp___reduce_cython;
  PyObject *__pyx_n_s_GreenNoiseInterp___setstate_cyth;
  PyObject *__pyx_n_s_GreenNoiseInterp_next;
  PyObject *__pyx_n_s_GreenNoise___reduce_cython;
  PyObject *__pyx_n_s_GreenNoise___setstate_cython;
  PyObject *__pyx_n_s_GreenNoise_next;
  PyObject *__pyx_n_s_ImportError;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8;
  PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9;
  PyObject *__pyx_n_s_Izcos;
  PyObject *__pyx_n_s_Izcos___reduce_cython;
  PyObject *__pyx_n_s_Izcos___setstate_cython;
  PyObject *__pyx_n_s_Izcos_mus_reset;
  PyObject *__pyx_n_s_Izcos_next;
  PyObject *__pyx_n_s_J0evencos;
  PyObject *__pyx_n_s_J0evencos___reduce_cython;
  PyObject *__pyx_n_s_J0evencos___setstate_cython;
  PyObject *__pyx_n_s_J0evencos_next;
  PyObject *__pyx_n_s_J0j1cos;
  PyObject *__pyx_n_s_J0j1cos___reduce_cython;
  PyObject *__pyx_n_s_J0j1cos___setstate_cython;
  PyObject *__pyx_n_s_J0j1cos_next;
  PyObject *__pyx_n_s_J2cos;
  PyObject *__pyx_n_s_J2cos___reduce_cython;
  PyObject *__pyx_n_s_J2cos___setstate_cython;
  PyObject *__pyx_n_s_J2cos_next;
  PyObject *__pyx_n_s_Jcos;
  PyObject *__pyx_n_s_Jcos___reduce_cython;
  PyObject *__pyx_n_s_Jcos___setstate_cython;
  PyObject *__pyx_n_s_Jcos_next;
  PyObject *__pyx_n_s_Jjcos;
  PyObject *__pyx_n_s_Jjcos___reduce_cython;
  PyObject *__pyx_n_s_Jjcos___setstate_cython;
  PyObject *__pyx_n_s_Jjcos_next;
  PyObject *__pyx_n_s_Jncos;
  PyObject *__pyx_n_s_Jncos___reduce_cython;
  PyObject *__pyx_n_s_Jncos___setstate_cython;
  PyObject *__pyx_n_s_Jncos_next;
  PyObject *__pyx_n_s_Jpcos;
  PyObject *__pyx_n_s_Jpcos___reduce_cython;
  PyObject *__pyx_n_s_Jpcos___setstate_cython;
  PyObject *__pyx_n_s_Jpcos_next;
  PyObject *__pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va;
  PyObject *__pyx_n_s_Jycos;
  PyObject *__pyx_n_s_Jycos___reduce_cython;
  PyObject *__pyx_n_s_Jycos___setstate_cython;
  PyObject *__pyx_n_s_Jycos_next;
  PyObject *__pyx_n_s_K2cos;
  PyObject *__pyx_n_s_K2cos___reduce_cython;
  PyObject *__pyx_n_s_K2cos___setstate_cython;
  PyObject *__pyx_n_s_K2cos_next;
  PyObject *__pyx_n_s_K2sin;
  PyObject *__pyx_n_s_K2sin___reduce_cython;
  PyObject *__pyx_n_s_K2sin___setstate_cython;
  PyObject *__pyx_n_s_K2sin_next;
  PyObject *__pyx_n_s_K2ssb;
  PyObject *__pyx_n_s_K2ssb___reduce_cython;
  PyObject *__pyx_n_s_K2ssb___setstate_cython;
  PyObject *__pyx_n_s_K2ssb_next;
  PyObject *__pyx_n_s_K3sin;
  PyObject *__pyx_n_s_K3sin___reduce_cython;
  PyObject *__pyx_n_s_K3sin___setstate_cython;
  PyObject *__pyx_n_s_K3sin_mus_reset;
  PyObject *__pyx_n_s_K3sin_next;
  PyObject *__pyx_n_s_Krksin;
  PyObject *__pyx_n_s_Krksin___reduce_cython;
  PyObject *__pyx_n_s_Krksin___setstate_cython;
  PyObject *__pyx_n_s_Krksin_next;
  PyObject *__pyx_n_s_MovingFFT;
  PyObject *__pyx_n_s_MovingFFT___reduce_cython;
  PyObject *__pyx_n_s_MovingFFT___setstate_cython;
  PyObject *__pyx_n_s_MovingFFT_mus_run;
  PyObject *__pyx_n_s_MovingFFT_next;
  PyObject *__pyx_n_s_MovingLength;
  PyObject *__pyx_n_s_MovingLength___reduce_cython;
  PyObject *__pyx_n_s_MovingLength___setstate_cython;
  PyObject *__pyx_n_s_MovingRMS;
  PyObject *__pyx_n_s_MovingRMS___reduce_cython;
  PyObject *__pyx_n_s_MovingRMS___setstate_cython;
  PyObject *__pyx_n_s_MovingRMS_next;
  PyObject *__pyx_n_s_MovingSum;
  PyObject *__pyx_n_s_MovingSum___reduce_cython;
  PyObject *__pyx_n_s_MovingSum___setstate_cython;
  PyObject *__pyx_n_s_MovingSum_next;
  PyObject *__pyx_n_s_MovingVariance;
  PyObject *__pyx_n_s_MovingVariance___reduce_cython;
  PyObject *__pyx_n_s_MovingVariance___setstate_cython;
  PyObject *__pyx_n_s_MovingVariance_next;
  PyObject *__pyx_n_s_N1cos;
  PyObject *__pyx_n_s_N1cos___reduce_cython;
  PyObject *__pyx_n_s_N1cos___setstate_cython;
  PyObject *__pyx_n_s_N1cos_next;
  PyObject *__pyx_n_s_Nchoosekcos;
  PyObject *__pyx_n_s_Nchoosekcos___reduce_cython;
  PyObject *__pyx_n_s_Nchoosekcos___setstate_cython;
  PyObject *__pyx_n_s_Nchoosekcos_next;
  PyObject *__pyx_n_s_Ncos2;
  PyObject *__pyx_n_s_Ncos2___reduce_cython;
  PyObject *__pyx_n_s_Ncos2___setstate_cython;
  PyObject *__pyx_n_s_Ncos2_next;
  PyObject *__pyx_n_s_Ncos4;
  PyObject *__pyx_n_s_Ncos4___reduce_cython;
  PyObject *__pyx_n_s_Ncos4___setstate_cython;
  PyObject *__pyx_n_s_Ncos4_next;
  PyObject *__pyx_n_s_Ncos5;
  PyObject *__pyx_n_s_Ncos5___reduce_cython;
  PyObject *__pyx_n_s_Ncos5___setstate_cython;
  PyObject *__pyx_n_s_Ncos5_next;
  PyObject *__pyx_n_s_Nkssb;
  PyObject *__pyx_n_s_Nkssb___reduce_cython;
  PyObject *__pyx_n_s_Nkssb___setstate_cython;
  PyObject *__pyx_n_s_Nkssb_call_interp;
  PyObject *__pyx_n_s_Nkssb_next;
  PyObject *__pyx_n_s_Noddcos;
  PyObject *__pyx_n_s_Noddcos___reduce_cython;
  PyObject *__pyx_n_s_Noddcos___setstate_cython;
  PyObject *__pyx_n_s_Noddcos_next;
  PyObject *__pyx_n_s_Noddsin;
  PyObject *__pyx_n_s_Noddsin___reduce_cython;
  PyObject *__pyx_n_s_Noddsin___setstate_cython;
  PyObject *__pyx_n_s_Noddsin_next;
  PyObject *__pyx_n_s_Noddssb;
  PyObject *__pyx_n_s_Noddssb___reduce_cython;
  PyObject *__pyx_n_s_Noddssb___setstate_cython;
  PyObject *__pyx_n_s_Noddssb_next;
  PyObject *__pyx_n_s_Npcos;
  PyObject *__pyx_n_s_Npcos___reduce_cython;
  PyObject *__pyx_n_s_Npcos___setstate_cython;
  PyObject *__pyx_n_s_Npcos_next;
  PyObject *__pyx_n_s_Npos1cos;
  PyObject *__pyx_n_s_Npos1cos___reduce_cython;
  PyObject *__pyx_n_s_Npos1cos___setstate_cython;
  PyObject *__pyx_n_s_Npos1cos_next;
  PyObject *__pyx_n_s_Npos3cos;
  PyObject *__pyx_n_s_Npos3cos___reduce_cython;
  PyObject *__pyx_n_s_Npos3cos___setstate_cython;
  PyObject *__pyx_n_s_Npos3cos_next;
  PyObject *__pyx_n_s_Nrcos;
  PyObject *__pyx_n_s_Nrcos___reduce_cython;
  PyObject *__pyx_n_s_Nrcos___setstate_cython;
  PyObject *__pyx_n_s_Nrcos_next;
  PyObject *__pyx_n_s_Nrssb;
  PyObject *__pyx_n_s_Nrssb___reduce_cython;
  PyObject *__pyx_n_s_Nrssb___setstate_cython;
  PyObject *__pyx_n_s_Nrssb_call_interp;
  PyObject *__pyx_n_s_Nrssb_next;
  PyObject *__pyx_n_s_Nsin5;
  PyObject *__pyx_n_s_Nsin5___reduce_cython;
  PyObject *__pyx_n_s_Nsin5___setstate_cython;
  PyObject *__pyx_n_s_Nsin5_next;
  PyObject *__pyx_n_s_Nsincos;
  PyObject *__pyx_n_s_Nsincos___reduce_cython;
  PyObject *__pyx_n_s_Nsincos___setstate_cython;
  PyObject *__pyx_n_s_Nsincos_next;
  PyObject *__pyx_n_s_Nssb;
  PyObject *__pyx_n_s_Nssb___reduce_cython;
  PyObject *__pyx_n_s_Nssb___setstate_cython;
  PyObject *__pyx_n_s_Nssb_next;
  PyObject *__pyx_n_s_Nxy1cos;
  PyObject *__pyx_n_s_Nxy1cos___reduce_cython;
  PyObject *__pyx_n_s_Nxy1cos___setstate_cython;
  PyObject *__pyx_n_s_Nxy1cos_next;
  PyObject *__pyx_n_s_Nxy1sin;
  PyObject *__pyx_n_s_Nxy1sin___reduce_cython;
  PyObject *__pyx_n_s_Nxy1sin___setstate_cython;
  PyObject *__pyx_n_s_Nxy1sin_next;
  PyObject *__pyx_n_s_Nxycos;
  PyObject *__pyx_n_s_Nxycos___reduce_cython;
  PyObject *__pyx_n_s_Nxycos___setstate_cython;
  PyObject *__pyx_n_s_Nxycos_next;
  PyObject *__pyx_n_s_Nxysin;
  PyObject *__pyx_n_s_Nxysin___reduce_cython;
  PyObject *__pyx_n_s_Nxysin___setstate_cython;
  PyObject *__pyx_n_s_Nxysin_next;
  PyObject *__pyx_n_s_PickleError;
  PyObject *__pyx_n_s_PinkNoise;
  PyObject *__pyx_n_s_PinkNoise___reduce_cython;
  PyObject *__pyx_n_s_PinkNoise___setstate_cython;
  PyObject *__pyx_n_s_PinkNoise_next;
  PyObject *__pyx_n_s_Polynomial;
  PyObject *__pyx_n_s_Pyx_CFunc_double__lParenobject;
  PyObject *__pyx_n_s_R2cos;
  PyObject *__pyx_n_s_R2cos___reduce_cython;
  PyObject *__pyx_n_s_R2cos___setstate_cython;
  PyObject *__pyx_n_s_R2cos_next;
  PyObject *__pyx_n_s_R2k2cos;
  PyObject *__pyx_n_s_R2k2cos___reduce_cython;
  PyObject *__pyx_n_s_R2k2cos___setstate_cython;
  PyObject *__pyx_n_s_R2k2cos_next;
  PyObject *__pyx_n_s_R2kfcos;
  PyObject *__pyx_n_s_R2kfcos___reduce_cython;
  PyObject *__pyx_n_s_R2kfcos___setstate_cython;
  PyObject *__pyx_n_s_R2kfcos_next;
  PyObject *__pyx_n_s_R2ssb;
  PyObject *__pyx_n_s_R2ssb___reduce_cython;
  PyObject *__pyx_n_s_R2ssb___setstate_cython;
  PyObject *__pyx_n_s_R2ssb_next;
  PyObject *__pyx_n_s_Rcos;
  PyObject *__pyx_n_s_Rcos___reduce_cython;
  PyObject *__pyx_n_s_Rcos___setstate_cython;
  PyObject *__pyx_n_s_Rcos_next;
  PyObject *__pyx_n_s_Rkcos;
  PyObject *__pyx_n_s_Rkcos___reduce_cython;
  PyObject *__pyx_n_s_Rkcos___setstate_cython;
  PyObject *__pyx_n_s_Rkcos_next;
  PyObject *__pyx_n_s_Rkfcos;
  PyObject *__pyx_n_s_Rkfcos___reduce_cython;
  PyObject *__pyx_n_s_Rkfcos___setstate_cython;
  PyObject *__pyx_n_s_Rkfcos_next;
  PyObject *__pyx_n_s_Rkfssb;
  PyObject *__pyx_n_s_Rkfssb___reduce_cython;
  PyObject *__pyx_n_s_Rkfssb___setstate_cython;
  PyObject *__pyx_n_s_Rkfssb_next;
  PyObject *__pyx_n_s_Rkoddssb;
  PyObject *__pyx_n_s_Rkoddssb___reduce_cython;
  PyObject *__pyx_n_s_Rkoddssb___setstate_cython;
  PyObject *__pyx_n_s_Rkoddssb_next;
  PyObject *__pyx_n_s_Rksin;
  PyObject *__pyx_n_s_Rksin___reduce_cython;
  PyObject *__pyx_n_s_Rksin___setstate_cython;
  PyObject *__pyx_n_s_Rksin_next;
  PyObject *__pyx_n_s_Rkssb;
  PyObject *__pyx_n_s_Rkssb___reduce_cython;
  PyObject *__pyx_n_s_Rkssb___setstate_cython;
  PyObject *__pyx_n_s_Rkssb_next;
  PyObject *__pyx_n_s_RoundInterp;
  PyObject *__pyx_n_s_RoundInterp___reduce_cython;
  PyObject *__pyx_n_s_RoundInterp___setstate_cython;
  PyObject *__pyx_n_s_RoundInterp_next;
  PyObject *__pyx_n_s_Rssb;
  PyObject *__pyx_n_s_Rssb___reduce_cython;
  PyObject *__pyx_n_s_Rssb___setstate_cython;
  PyObject *__pyx_n_s_Rssb_call_interp;
  PyObject *__pyx_n_s_Rssb_next;
  PyObject *__pyx_n_s_Rxycos;
  PyObject *__pyx_n_s_Rxycos___reduce_cython;
  PyObject *__pyx_n_s_Rxycos___setstate_cython;
  PyObject *__pyx_n_s_Rxycos_next;
  PyObject *__pyx_n_s_Rxysin;
  PyObject *__pyx_n_s_Rxysin___reduce_cython;
  PyObject *__pyx_n_s_Rxysin___setstate_cython;
  PyObject *__pyx_n_s_Rxysin_next;
  PyObject *__pyx_n_s_SECOND_KIND;
  PyObject *__pyx_n_s_SafeRxycos;
  PyObject *__pyx_n_s_SafeRxycos___reduce_cython;
  PyObject *__pyx_n_s_SafeRxycos___setstate_cython;
  PyObject *__pyx_n_s_SafeRxycos_clamp_rxycos_r;
  PyObject *__pyx_n_s_SafeRxycos_next;
  PyObject *__pyx_n_s_SincTrain;
  PyObject *__pyx_n_s_SincTrain___reduce_cython;
  PyObject *__pyx_n_s_SincTrain___setstate_cython;
  PyObject *__pyx_n_s_SincTrain_next;
  PyObject *__pyx_n_s_Tanhsin;
  PyObject *__pyx_n_s_Tanhsin___reduce_cython;
  PyObject *__pyx_n_s_Tanhsin___setstate_cython;
  PyObject *__pyx_n_s_Tanhsin_next;
  PyObject *__pyx_n_s_ValueError;
  PyObject *__pyx_n_s_WeightedMovingAverage;
  PyObject *__pyx_n_s_WeightedMovingAverage___reduce_c;
  PyObject *__pyx_n_s_WeightedMovingAverage___setstate;
  PyObject *__pyx_n_s_WeightedMovingAverage_next;
  PyObject *__pyx_n_s__2;
  PyObject *__pyx_n_s__935;
  PyObject *__pyx_n_s_a;
  PyObject *__pyx_n_s_a2;
  PyObject *__pyx_kp_u_a_2;
  PyObject *__pyx_n_s_abcos;
  PyObject *__pyx_n_s_absin;
  PyObject *__pyx_n_s_acos;
  PyObject *__pyx_n_s_adjustable_oscil;
  PyObject *__pyx_n_s_adjustable_sawtooth_wave;
  PyObject *__pyx_n_s_adjustable_square_wave;
  PyObject *__pyx_n_s_adjustable_triangle_wave;
  PyObject *__pyx_n_s_amplitude;
  PyObject *__pyx_n_s_angle;
  PyObject *__pyx_n_s_arg1;
  PyObject *__pyx_n_s_arg2;
  PyObject *__pyx_n_s_array;
  PyObject *__pyx_n_s_asyfm;
  PyObject *__pyx_n_s_asyfm_i;
  PyObject *__pyx_n_s_asyfm_j;
  PyObject *__pyx_n_s_asyncio_coroutines;
  PyObject *__pyx_n_s_atan2;
  PyObject *__pyx_n_s_b;
  PyObject *__pyx_n_s_bes_i0;
  PyObject *__pyx_n_s_bess;
  PyObject *__pyx_n_s_bessel_peaks;
  PyObject *__pyx_n_s_blackman;
  PyObject *__pyx_n_s_blackman4_env;
  PyObject *__pyx_n_s_blackman_coeffs;
  PyObject *__pyx_n_s_blsaw;
  PyObject *__pyx_n_s_brown_noise;
  PyObject *__pyx_n_s_call_interp;
  PyObject *__pyx_n_s_ceil;
  PyObject *__pyx_n_s_cfunc_to_py;
  PyObject *__pyx_n_s_channels;
  PyObject *__pyx_n_s_clamp;
  PyObject *__pyx_n_s_clamp_rxycos_r;
  PyObject *__pyx_n_s_class_getitem;
  PyObject *__pyx_n_s_cline_in_traceback;
  PyObject *__pyx_n_s_clm;
  PyObject *__pyx_n_s_copyto;
  PyObject *__pyx_n_s_cos;
  PyObject *__pyx_n_s_cosh;
  PyObject *__pyx_kp_s_cython_double;
  PyObject *__pyx_n_s_data;
  PyObject *__pyx_n_s_dblsum;
  PyObject *__pyx_n_s_default;
  PyObject *__pyx_n_s_den;
  PyObject *__pyx_n_s_dict;
  PyObject *__pyx_n_s_dict_2;
  PyObject *__pyx_kp_u_disable;
  PyObject *__pyx_n_s_double;
  PyObject *__pyx_n_s_dtype;
  PyObject *__pyx_n_s_duty_factor;
  PyObject *__pyx_n_s_e;
  PyObject *__pyx_kp_u_enable;
  PyObject *__pyx_kp_u_enum_class_Polynomial_not_import;
  PyObject *__pyx_n_s_eoddcos;
  PyObject *__pyx_n_s_ercos;
  PyObject *__pyx_n_s_erssb;
  PyObject *__pyx_n_s_exp;
  PyObject *__pyx_n_s_exponentially_weighted_moving_av;
  PyObject *__pyx_n_s_expts;
  PyObject *__pyx_n_s_fabs;
  PyObject *__pyx_n_s_fill;
  PyObject *__pyx_n_s_find_mid_max;
  PyObject *__pyx_n_s_find_nodds_mid_max;
  PyObject *__pyx_n_s_find_noddsin_max;
  PyObject *__pyx_n_s_find_noddsin_max_locals_find_mid;
  PyObject *__pyx_n_s_find_nsin5_max;
  PyObject *__pyx_n_s_find_nsin5_max_locals_find_mid_m;
  PyObject *__pyx_n_s_find_nsin5_max_locals_ns;
  PyObject *__pyx_n_s_find_nxysin_max;
  PyObject *__pyx_n_s_find_nxysin_max_locals_find_mid;
  PyObject *__pyx_n_s_find_nxysin_max_locals_find_nodd;
  PyObject *__pyx_n_s_find_nxysin_max_locals_ns;
  PyObject *__pyx_n_s_floor;
  PyObject *__pyx_n_s_fm;
  PyObject *__pyx_n_s_fmssb;
  PyObject *__pyx_n_s_frequency;
  PyObject *__pyx_n_s_fun;
  PyObject *__pyx_kp_u_gc;
  PyObject *__pyx_n_s_gen;
  PyObject *__pyx_n_s_getstate;
  PyObject *__pyx_n_s_green_noise;
  PyObject *__pyx_n_s_green_noise_interp;
  PyObject *__pyx_n_s_hi;
  PyObject *__pyx_n_s_high;
  PyObject *__pyx_n_s_hop;
  PyObject *__pyx_n_s_im;
  PyObject *__pyx_n_s_import;
  PyObject *__pyx_n_s_index;
  PyObject *__pyx_n_s_init;
  PyObject *__pyx_n_s_initial_phase;
  PyObject *__pyx_n_s_initializing;
  PyObject *__pyx_n_s_insig;
  PyObject *__pyx_n_s_interp;
  PyObject *__pyx_n_s_is_abcos;
  PyObject *__pyx_n_s_is_absin;
  PyObject *__pyx_n_s_is_adjustable_oscil;
  PyObject *__pyx_n_s_is_adjustable_sawtooth_wave;
  PyObject *__pyx_n_s_is_adjustable_square_wave;
  PyObject *__pyx_n_s_is_adjustable_triangle_wave;
  PyObject *__pyx_n_s_is_asyfm;
  PyObject *__pyx_n_s_is_bess;
  PyObject *__pyx_n_s_is_blackman;
  PyObject *__pyx_n_s_is_blsaw;
  PyObject *__pyx_n_s_is_brown_noise;
  PyObject *__pyx_n_s_is_coroutine;
  PyObject *__pyx_n_s_is_dblsum;
  PyObject *__pyx_n_s_is_eoddcos;
  PyObject *__pyx_n_s_is_ercos;
  PyObject *__pyx_n_s_is_erssb;
  PyObject *__pyx_n_s_is_exponentially_weighted_moving;
  PyObject *__pyx_n_s_is_fmssb;
  PyObject *__pyx_n_s_is_green_noise;
  PyObject *__pyx_n_s_is_green_noise_interp;
  PyObject *__pyx_n_s_is_izcos;
  PyObject *__pyx_n_s_is_j0evencos;
  PyObject *__pyx_n_s_is_j0j1cos;
  PyObject *__pyx_n_s_is_j2cos;
  PyObject *__pyx_n_s_is_jcos;
  PyObject *__pyx_n_s_is_jjcos;
  PyObject *__pyx_n_s_is_jncos;
  PyObject *__pyx_n_s_is_jpcos;
  PyObject *__pyx_n_s_is_jycos;
  PyObject *__pyx_n_s_is_k2cos;
  PyObject *__pyx_n_s_is_k2sin;
  PyObject *__pyx_n_s_is_k2ssb;
  PyObject *__pyx_n_s_is_k3sin;
  PyObject *__pyx_n_s_is_krksin;
  PyObject *__pyx_n_s_is_moving_fft;
  PyObject *__pyx_n_s_is_moving_length;
  PyObject *__pyx_n_s_is_moving_rms;
  PyObject *__pyx_n_s_is_moving_sum;
  PyObject *__pyx_n_s_is_moving_variance;
  PyObject *__pyx_n_s_is_n1cos;
  PyObject *__pyx_n_s_is_nchoosekcos;
  PyObject *__pyx_n_s_is_ncos2;
  PyObject *__pyx_n_s_is_ncos4;
  PyObject *__pyx_n_s_is_ncos5;
  PyObject *__pyx_n_s_is_nkssb;
  PyObject *__pyx_n_s_is_noddcos;
  PyObject *__pyx_n_s_is_noddsin;
  PyObject *__pyx_n_s_is_noddssb;
  PyObject *__pyx_n_s_is_npcos;
  PyObject *__pyx_n_s_is_npos1cos;
  PyObject *__pyx_n_s_is_npos3cos;
  PyObject *__pyx_n_s_is_nrcos;
  PyObject *__pyx_n_s_is_nrsin;
  PyObject *__pyx_n_s_is_nrssb;
  PyObject *__pyx_n_s_is_nsin5;
  PyObject *__pyx_n_s_is_nsincos;
  PyObject *__pyx_n_s_is_nssb;
  PyObject *__pyx_n_s_is_nxy1cos;
  PyObject *__pyx_n_s_is_nxy1sin;
  PyObject *__pyx_n_s_is_nxycos;
  PyObject *__pyx_n_s_is_nxysin;
  PyObject *__pyx_n_s_is_pink_noise;
  PyObject *__pyx_n_s_is_polyoid;
  PyObject *__pyx_n_s_is_r2cos;
  PyObject *__pyx_n_s_is_r2k2cos;
  PyObject *__pyx_n_s_is_r2kfcos;
  PyObject *__pyx_n_s_is_r2ssb;
  PyObject *__pyx_n_s_is_rcos;
  PyObject *__pyx_n_s_is_rkcos;
  PyObject *__pyx_n_s_is_rkfcos;
  PyObject *__pyx_n_s_is_rkfssb;
  PyObject *__pyx_n_s_is_rkoddssb;
  PyObject *__pyx_n_s_is_rksin;
  PyObject *__pyx_n_s_is_rkssb;
  PyObject *__pyx_n_s_is_round_interp;
  PyObject *__pyx_n_s_is_rssb;
  PyObject *__pyx_n_s_is_rxycos;
  PyObject *__pyx_n_s_is_rxysin;
  PyObject *__pyx_n_s_is_safe_rxycos;
  PyObject *__pyx_n_s_is_sinc_train;
  PyObject *__pyx_n_s_is_tanhsin;
  PyObject *__pyx_n_s_is_weighted_moving_average;
  PyObject *__pyx_kp_u_isenabled;
  PyObject *__pyx_n_s_izcos;
  PyObject *__pyx_n_s_j0evencos;
  PyObject *__pyx_n_s_j0j1cos;
  PyObject *__pyx_n_s_j2cos;
  PyObject *__pyx_n_s_jcos;
  PyObject *__pyx_n_s_jjcos;
  PyObject *__pyx_n_s_jncos;
  PyObject *__pyx_n_s_jpcos;
  PyObject *__pyx_n_s_jycos;
  PyObject *__pyx_n_s_k;
  PyObject *__pyx_n_s_k2cos;
  PyObject *__pyx_n_s_k2sin;
  PyObject *__pyx_n_s_k2ssb;
  PyObject *__pyx_n_s_k3sin;
  PyObject *__pyx_n_s_krksin;
  PyObject *__pyx_n_s_last_moving_fft_window;
  PyObject *__pyx_n_s_length;
  PyObject *__pyx_n_s_lo;
  PyObject *__pyx_n_s_log;
  PyObject *__pyx_n_s_low;
  PyObject *__pyx_n_s_main;
  PyObject *__pyx_n_s_make_abcos;
  PyObject *__pyx_n_s_make_absin;
  PyObject *__pyx_n_s_make_adjustable_oscil;
  PyObject *__pyx_n_s_make_adjustable_sawtooth_wave;
  PyObject *__pyx_n_s_make_adjustable_square_wave;
  PyObject *__pyx_n_s_make_adjustable_triangle_wave;
  PyObject *__pyx_n_s_make_asyfm;
  PyObject *__pyx_n_s_make_bess;
  PyObject *__pyx_n_s_make_blackman;
  PyObject *__pyx_n_s_make_blsaw;
  PyObject *__pyx_n_s_make_brown_noise;
  PyObject *__pyx_n_s_make_dblsum;
  PyObject *__pyx_n_s_make_env;
  PyObject *__pyx_n_s_make_eoddcos;
  PyObject *__pyx_n_s_make_ercos;
  PyObject *__pyx_n_s_make_erssb;
  PyObject *__pyx_n_s_make_exponentially_weighted_movi;
  PyObject *__pyx_n_s_make_fmssb;
  PyObject *__pyx_n_s_make_green_noise;
  PyObject *__pyx_n_s_make_green_noise_interp;
  PyObject *__pyx_n_s_make_izcos;
  PyObject *__pyx_n_s_make_j0evencos;
  PyObject *__pyx_n_s_make_j0j1cos;
  PyObject *__pyx_n_s_make_j2cos;
  PyObject *__pyx_n_s_make_jcos;
  PyObject *__pyx_n_s_make_jjcos;
  PyObject *__pyx_n_s_make_jncos;
  PyObject *__pyx_n_s_make_jpcos;
  PyObject *__pyx_n_s_make_jycos;
  PyObject *__pyx_n_s_make_k2cos;
  PyObject *__pyx_n_s_make_k2sin;
  PyObject *__pyx_n_s_make_k2ssb;
  PyObject *__pyx_n_s_make_k3sin;
  PyObject *__pyx_n_s_make_krksin;
  PyObject *__pyx_n_s_make_moving_average;
  PyObject *__pyx_n_s_make_moving_fft;
  PyObject *__pyx_n_s_make_moving_length;
  PyObject *__pyx_n_s_make_moving_rms;
  PyObject *__pyx_n_s_make_moving_sum;
  PyObject *__pyx_n_s_make_moving_variance;
  PyObject *__pyx_n_s_make_n1cos;
  PyObject *__pyx_n_s_make_nchoosekcos;
  PyObject *__pyx_n_s_make_ncos2;
  PyObject *__pyx_n_s_make_ncos4;
  PyObject *__pyx_n_s_make_ncos5;
  PyObject *__pyx_n_s_make_nkssb;
  PyObject *__pyx_n_s_make_noddcos;
  PyObject *__pyx_n_s_make_noddsin;
  PyObject *__pyx_n_s_make_noddssb;
  PyObject *__pyx_n_s_make_npcos;
  PyObject *__pyx_n_s_make_npos1cos;
  PyObject *__pyx_n_s_make_npos3cos;
  PyObject *__pyx_n_s_make_nrcos;
  PyObject *__pyx_n_s_make_nrsin;
  PyObject *__pyx_n_s_make_nrssb;
  PyObject *__pyx_n_s_make_nrxysin;
  PyObject *__pyx_n_s_make_nsin5;
  PyObject *__pyx_n_s_make_nsincos;
  PyObject *__pyx_n_s_make_nssb;
  PyObject *__pyx_n_s_make_nxy1cos;
  PyObject *__pyx_n_s_make_nxy1sin;
  PyObject *__pyx_n_s_make_nxycos;
  PyObject *__pyx_n_s_make_nxysin;
  PyObject *__pyx_n_s_make_one_pole;
  PyObject *__pyx_n_s_make_oscil;
  PyObject *__pyx_n_s_make_pink_noise;
  PyObject *__pyx_n_s_make_polyoid;
  PyObject *__pyx_n_s_make_polywave;
  PyObject *__pyx_n_s_make_pulse_train;
  PyObject *__pyx_n_s_make_r2cos;
  PyObject *__pyx_n_s_make_r2k2cos;
  PyObject *__pyx_n_s_make_r2kfcos;
  PyObject *__pyx_n_s_make_r2ssb;
  PyObject *__pyx_n_s_make_rand;
  PyObject *__pyx_n_s_make_rand_interp;
  PyObject *__pyx_n_s_make_rcos;
  PyObject *__pyx_n_s_make_rkcos;
  PyObject *__pyx_n_s_make_rkfcos;
  PyObject *__pyx_n_s_make_rkfssb;
  PyObject *__pyx_n_s_make_rkoddssb;
  PyObject *__pyx_n_s_make_rksin;
  PyObject *__pyx_n_s_make_rkssb;
  PyObject *__pyx_n_s_make_round_interp;
  PyObject *__pyx_n_s_make_rssb;
  PyObject *__pyx_n_s_make_rxycos;
  PyObject *__pyx_n_s_make_rxysin;
  PyObject *__pyx_n_s_make_safe_rxycos;
  PyObject *__pyx_n_s_make_sinc_train;
  PyObject *__pyx_n_s_make_table_lookup;
  PyObject *__pyx_n_s_make_table_lookup_with_env;
  PyObject *__pyx_n_s_make_tanhsin;
  PyObject *__pyx_n_s_make_triangle_wave;
  PyObject *__pyx_n_s_make_wave_train;
  PyObject *__pyx_n_s_make_wave_train_with_env;
  PyObject *__pyx_n_s_make_weighted_moving_average;
  PyObject *__pyx_n_s_math;
  PyObject *__pyx_n_s_mid;
  PyObject *__pyx_n_s_moving_fft;
  PyObject *__pyx_n_s_moving_length;
  PyObject *__pyx_n_s_moving_rms;
  PyObject *__pyx_n_s_moving_sum;
  PyObject *__pyx_n_s_moving_variance;
  PyObject *__pyx_n_s_multi_expt_env;
  PyObject *__pyx_n_s_multi_expt_env_locals_fun;
  PyObject *__pyx_n_s_mus_channel;
  PyObject *__pyx_n_s_mus_frequency;
  PyObject *__pyx_n_s_mus_increment;
  PyObject *__pyx_n_s_mus_phase;
  PyObject *__pyx_n_s_mus_reset;
  PyObject *__pyx_n_s_mus_run;
  PyObject *__pyx_n_s_mus_xcoeffs;
  PyObject *__pyx_n_s_mus_ycoeffs;
  PyObject *__pyx_kp_u_must_be_r;
  PyObject *__pyx_n_s_n;
  PyObject *__pyx_n_s_n1cos;
  PyObject *__pyx_n_s_name;
  PyObject *__pyx_n_s_nchoosekcos;
  PyObject *__pyx_n_s_ncos2;
  PyObject *__pyx_n_s_ncos4;
  PyObject *__pyx_n_s_ncos5;
  PyObject *__pyx_n_s_new;
  PyObject *__pyx_n_s_next;
  PyObject *__pyx_n_s_next_i;
  PyObject *__pyx_n_s_next_j;
  PyObject *__pyx_n_s_nkssb;
  PyObject *__pyx_n_s_nkssb_interp;
  PyObject *__pyx_n_s_noddcos;
  PyObject *__pyx_n_s_nodds;
  PyObject *__pyx_n_s_noddsin;
  PyObject *__pyx_n_s_noddssb;
  PyObject *__pyx_n_s_norm;
  PyObject *__pyx_n_s_np;
  PyObject *__pyx_n_s_npcos;
  PyObject *__pyx_n_s_npos1cos;
  PyObject *__pyx_n_s_npos3cos;
  PyObject *__pyx_n_s_nrcos;
  PyObject *__pyx_n_s_nrsin;
  PyObject *__pyx_n_s_nrssb;
  PyObject *__pyx_n_s_nrssb_interp;
  PyObject *__pyx_n_s_ns;
  PyObject *__pyx_n_s_nsin5;
  PyObject *__pyx_n_s_nsincos;
  PyObject *__pyx_n_s_nssb;
  PyObject *__pyx_n_s_num;
  PyObject *__pyx_n_s_numpy;
  PyObject *__pyx_kp_u_numpy_core_multiarray_failed_to;
  PyObject *__pyx_kp_u_numpy_core_umath_failed_to_impor;
  PyObject *__pyx_n_s_nxy1cos;
  PyObject *__pyx_n_s_nxy1sin;
  PyObject *__pyx_n_s_nxycos;
  PyObject *__pyx_n_s_nxysin;
  PyObject *__pyx_n_s_osc;
  PyObject *__pyx_n_s_outctr;
  PyObject *__pyx_n_s_partial_amps_and_phases;
  PyObject *__pyx_n_s_pi;
  PyObject *__pyx_n_s_pickle;
  PyObject *__pyx_n_s_pink_noise;
  PyObject *__pyx_n_s_polyoid;
  PyObject *__pyx_n_s_polyoid_tn;
  PyObject *__pyx_n_s_polyoid_un;
  PyObject *__pyx_n_s_pow;
  PyObject *__pyx_n_s_pulse_env;
  PyObject *__pyx_n_s_pysndlib;
  PyObject *__pyx_n_s_pysndlib_clm;
  PyObject *__pyx_n_s_pysndlib_generators;
  PyObject *__pyx_n_s_pyx_PickleError;
  PyObject *__pyx_n_s_pyx_checksum;
  PyObject *__pyx_n_s_pyx_result;
  PyObject *__pyx_n_s_pyx_state;
  PyObject *__pyx_n_s_pyx_type;
  PyObject *__pyx_n_s_pyx_unpickle_Abcos;
  PyObject *__pyx_n_s_pyx_unpickle_Absin;
  PyObject *__pyx_n_s_pyx_unpickle_AdjustableOscil;
  PyObject *__pyx_n_s_pyx_unpickle_AdjustableSawtoot;
  PyObject *__pyx_n_s_pyx_unpickle_AdjustableSquareW;
  PyObject *__pyx_n_s_pyx_unpickle_AdjustableTriangl;
  PyObject *__pyx_n_s_pyx_unpickle_Asyfm;
  PyObject *__pyx_n_s_pyx_unpickle_Bess;
  PyObject *__pyx_n_s_pyx_unpickle_Blackman;
  PyObject *__pyx_n_s_pyx_unpickle_Blsaw;
  PyObject *__pyx_n_s_pyx_unpickle_BrownNoise;
  PyObject *__pyx_n_s_pyx_unpickle_CLMGenerator;
  PyObject *__pyx_n_s_pyx_unpickle_Dblsum;
  PyObject *__pyx_n_s_pyx_unpickle_Eoddcos;
  PyObject *__pyx_n_s_pyx_unpickle_Ercos;
  PyObject *__pyx_n_s_pyx_unpickle_Erssb;
  PyObject *__pyx_n_s_pyx_unpickle_ExponentiallyWeig;
  PyObject *__pyx_n_s_pyx_unpickle_Fmssb;
  PyObject *__pyx_n_s_pyx_unpickle_GreenNoise;
  PyObject *__pyx_n_s_pyx_unpickle_GreenNoiseInterp;
  PyObject *__pyx_n_s_pyx_unpickle_Izcos;
  PyObject *__pyx_n_s_pyx_unpickle_J0evencos;
  PyObject *__pyx_n_s_pyx_unpickle_J0j1cos;
  PyObject *__pyx_n_s_pyx_unpickle_J2cos;
  PyObject *__pyx_n_s_pyx_unpickle_Jcos;
  PyObject *__pyx_n_s_pyx_unpickle_Jjcos;
  PyObject *__pyx_n_s_pyx_unpickle_Jncos;
  PyObject *__pyx_n_s_pyx_unpickle_Jpcos;
  PyObject *__pyx_n_s_pyx_unpickle_Jycos;
  PyObject *__pyx_n_s_pyx_unpickle_K2cos;
  PyObject *__pyx_n_s_pyx_unpickle_K2sin;
  PyObject *__pyx_n_s_pyx_unpickle_K2ssb;
  PyObject *__pyx_n_s_pyx_unpickle_K3sin;
  PyObject *__pyx_n_s_pyx_unpickle_Krksin;
  PyObject *__pyx_n_s_pyx_unpickle_MovingFFT;
  PyObject *__pyx_n_s_pyx_unpickle_MovingLength;
  PyObject *__pyx_n_s_pyx_unpickle_MovingRMS;
  PyObject *__pyx_n_s_pyx_unpickle_MovingSum;
  PyObject *__pyx_n_s_pyx_unpickle_MovingVariance;
  PyObject *__pyx_n_s_pyx_unpickle_N1cos;
  PyObject *__pyx_n_s_pyx_unpickle_Nchoosekcos;
  PyObject *__pyx_n_s_pyx_unpickle_Ncos2;
  PyObject *__pyx_n_s_pyx_unpickle_Ncos4;
  PyObject *__pyx_n_s_pyx_unpickle_Ncos5;
  PyObject *__pyx_n_s_pyx_unpickle_Nkssb;
  PyObject *__pyx_n_s_pyx_unpickle_Noddcos;
  PyObject *__pyx_n_s_pyx_unpickle_Noddsin;
  PyObject *__pyx_n_s_pyx_unpickle_Noddssb;
  PyObject *__pyx_n_s_pyx_unpickle_Npcos;
  PyObject *__pyx_n_s_pyx_unpickle_Npos1cos;
  PyObject *__pyx_n_s_pyx_unpickle_Npos3cos;
  PyObject *__pyx_n_s_pyx_unpickle_Nrcos;
  PyObject *__pyx_n_s_pyx_unpickle_Nrssb;
  PyObject *__pyx_n_s_pyx_unpickle_Nsin5;
  PyObject *__pyx_n_s_pyx_unpickle_Nsincos;
  PyObject *__pyx_n_s_pyx_unpickle_Nssb;
  PyObject *__pyx_n_s_pyx_unpickle_Nxy1cos;
  PyObject *__pyx_n_s_pyx_unpickle_Nxy1sin;
  PyObject *__pyx_n_s_pyx_unpickle_Nxycos;
  PyObject *__pyx_n_s_pyx_unpickle_Nxysin;
  PyObject *__pyx_n_s_pyx_unpickle_PinkNoise;
  PyObject *__pyx_n_s_pyx_unpickle_R2cos;
  PyObject *__pyx_n_s_pyx_unpickle_R2k2cos;
  PyObject *__pyx_n_s_pyx_unpickle_R2kfcos;
  PyObject *__pyx_n_s_pyx_unpickle_R2ssb;
  PyObject *__pyx_n_s_pyx_unpickle_Rcos;
  PyObject *__pyx_n_s_pyx_unpickle_Rkcos;
  PyObject *__pyx_n_s_pyx_unpickle_Rkfcos;
  PyObject *__pyx_n_s_pyx_unpickle_Rkfssb;
  PyObject *__pyx_n_s_pyx_unpickle_Rkoddssb;
  PyObject *__pyx_n_s_pyx_unpickle_Rksin;
  PyObject *__pyx_n_s_pyx_unpickle_Rkssb;
  PyObject *__pyx_n_s_pyx_unpickle_RoundInterp;
  PyObject *__pyx_n_s_pyx_unpickle_Rssb;
  PyObject *__pyx_n_s_pyx_unpickle_Rxycos;
  PyObject *__pyx_n_s_pyx_unpickle_Rxysin;
  PyObject *__pyx_n_s_pyx_unpickle_SafeRxycos;
  PyObject *__pyx_n_s_pyx_unpickle_SincTrain;
  PyObject *__pyx_n_s_pyx_unpickle_Tanhsin;
  PyObject *__pyx_n_s_pyx_unpickle_WeightedMovingAve;
  PyObject *__pyx_n_s_pyx_vtable;
  PyObject *__pyx_n_s_r;
  PyObject *__pyx_n_s_r2cos;
  PyObject *__pyx_n_s_r2k2cos;
  PyObject *__pyx_n_s_r2kfcos;
  PyObject *__pyx_n_s_r2ssb;
  PyObject *__pyx_kp_u_r_2;
  PyObject *__pyx_n_s_random;
  PyObject *__pyx_n_s_range;
  PyObject *__pyx_n_s_ratio;
  PyObject *__pyx_n_s_rcos;
  PyObject *__pyx_n_s_reader;
  PyObject *__pyx_n_s_real;
  PyObject *__pyx_n_s_reduce;
  PyObject *__pyx_n_s_reduce_cython;
  PyObject *__pyx_n_s_reduce_ex;
  PyObject *__pyx_n_s_rkcos;
  PyObject *__pyx_n_s_rkfcos;
  PyObject *__pyx_n_s_rkfssb;
  PyObject *__pyx_n_s_rkoddssb;
  PyObject *__pyx_n_s_rksin;
  PyObject *__pyx_n_s_rkssb;
  PyObject *__pyx_n_s_rl;
  PyObject *__pyx_n_s_rnd;
  PyObject *__pyx_n_s_roll;
  PyObject *__pyx_n_s_round_interp;
  PyObject *__pyx_n_s_rssb;
  PyObject *__pyx_n_s_rssb_interp;
  PyObject *__pyx_n_s_rxycos;
  PyObject *__pyx_n_s_rxysin;
  PyObject *__pyx_n_s_safe_rxycos;
  PyObject *__pyx_n_s_self;
  PyObject *__pyx_n_s_setstate;
  PyObject *__pyx_n_s_setstate_cython;
  PyObject *__pyx_n_s_sin;
  PyObject *__pyx_n_s_sinc_train;
  PyObject *__pyx_n_s_sine_env;
  PyObject *__pyx_n_s_sinh;
  PyObject *__pyx_n_s_size;
  PyObject *__pyx_n_s_spec;
  PyObject *__pyx_n_s_sqrt;
  PyObject *__pyx_n_s_square_env;
  PyObject *__pyx_kp_s_src_pysndlib_generators_pyx;
  PyObject *__pyx_n_s_state;
  PyObject *__pyx_kp_s_stringsource;
  PyObject *__pyx_n_s_super;
  PyObject *__pyx_n_s_table_size;
  PyObject *__pyx_n_s_tan;
  PyObject *__pyx_n_s_tanh;
  PyObject *__pyx_n_s_tanhsin;
  PyObject *__pyx_n_s_test;
  PyObject *__pyx_n_s_update;
  PyObject *__pyx_n_s_use_setstate;
  PyObject *__pyx_n_s_warn;
  PyObject *__pyx_n_s_warnings;
  PyObject *__pyx_n_s_weighted_moving_average;
  PyObject *__pyx_kp_u_will_cause_bes_y0_to_return_inf;
  PyObject *__pyx_n_s_window;
  PyObject *__pyx_n_s_wrap;
  PyObject *__pyx_n_s_x;
  PyObject *__pyx_n_s_xcoeffs;
  PyObject *__pyx_n_s_y;
  PyObject *__pyx_n_s_ycoeffs;
  PyObject *__pyx_n_s_yhi;
  PyObject *__pyx_n_s_ylo;
  PyObject *__pyx_n_s_zeros;
  PyObject *__pyx_float__0;
  PyObject *__pyx_float__5;
  PyObject *__pyx_float_0_;
  PyObject *__pyx_float_1_;
  PyObject *__pyx_float_3_;
  PyObject *__pyx_float__25;
  PyObject *__pyx_float__54;
  PyObject *__pyx_float_0_0;
  PyObject *__pyx_float_0_5;
  PyObject *__pyx_float_1_0;
  PyObject *__pyx_float_2_0;
  PyObject *__pyx_float_2_5;
  PyObject *__pyx_float_3_0;
  PyObject *__pyx_float_4_0;
  PyObject *__pyx_float_5_0;
  PyObject *__pyx_float__001;
  PyObject *__pyx_float_0_54;
  PyObject *__pyx_float_1eneg_9;
  PyObject *__pyx_float_0_248;
  PyObject *__pyx_float_0_252;
  PyObject *__pyx_float_0_257;
  PyObject *__pyx_float_0_262;
  PyObject *__pyx_float_0_267;
  PyObject *__pyx_float_0_273;
  PyObject *__pyx_float_0_279;
  PyObject *__pyx_float_0_286;
  PyObject *__pyx_float_0_294;
  PyObject *__pyx_float_0_303;
  PyObject *__pyx_float_0_313;
  PyObject *__pyx_float_0_325;
  PyObject *__pyx_float_0_338;
  PyObject *__pyx_float_0_355;
  PyObject *__pyx_float_0_375;
  PyObject *__pyx_float_0_400;
  PyObject *__pyx_float_0_435;
  PyObject *__pyx_float_0_487;
  PyObject *__pyx_float_0_582;
  PyObject *__pyx_float_1_000;
  PyObject *__pyx_float__00001;
  PyObject *__pyx_float__08333;
  PyObject *__pyx_float__99999;
  PyObject *__pyx_float_1_0eneg_6;
  PyObject *__pyx_float_1_0eneg_9;
  PyObject *__pyx_float__201416;
  PyObject *__pyx_float__293557;
  PyObject *__pyx_float__999999;
  PyObject *__pyx_float_0_14128;
  PyObject *__pyx_float_0_20762;
  PyObject *__pyx_float_0_20844;
  PyObject *__pyx_float_0_29145;
  PyObject *__pyx_float_0_35875;
  PyObject *__pyx_float_0_42323;
  PyObject *__pyx_float_0_48829;
  PyObject *__pyx_float__2151527;
  PyObject *__pyx_float__2180041;
  PyObject *__pyx_float__2257345;
  PyObject *__pyx_float__2288396;
  PyObject *__pyx_float__2358242;
  PyObject *__pyx_float__2384331;
  PyObject *__pyx_float__2401294;
  PyObject *__pyx_float__2424243;
  PyObject *__pyx_float__2533176;
  PyObject *__pyx_float__2712203;
  PyObject *__pyx_float__9999999;
  PyObject *__pyx_float_0_005149;
  PyObject *__pyx_float_0_041194;
  PyObject *__pyx_float_0_078279;
  PyObject *__pyx_float_0_084037;
  PyObject *__pyx_float_0_287333;
  PyObject *__pyx_float_0_375696;
  PyObject *__pyx_float__00502619;
  PyObject *__pyx_float__03325916;
  PyObject *__pyx_float__04077422;
  PyObject *__pyx_float__010761867;
  PyObject *__pyx_float__017735924;
  PyObject *__pyx_float__025373955;
  PyObject *__pyx_float__0008751673;
  PyObject *__pyx_float__0016398069;
  PyObject *__pyx_float__00001368088;
  PyObject *__pyx_float__00010677413;
  PyObject *__pyx_float__00036856041;
  PyObject *__pyx_float__000001710716;
  PyObject *__pyx_float__000008884663;
  PyObject *__pyx_float__0000001161808;
  PyObject *__pyx_float__00000000084824;
  PyObject *__pyx_float_neg_1_;
  PyObject *__pyx_float_neg_0_46;
  PyObject *__pyx_float_neg__99999;
  PyObject *__pyx_float_neg__047926;
  PyObject *__pyx_float_neg__451935;
  PyObject *__pyx_float_neg__999999;
  PyObject *__pyx_float_neg_0_01168;
  PyObject *__pyx_float_neg_0_05190;
  PyObject *__pyx_float_neg_0_44716;
  PyObject *__pyx_float_neg_0_49755;
  PyObject *__pyx_float_neg__0657853;
  PyObject *__pyx_float_neg__1070542;
  PyObject *__pyx_float_neg__1166907;
  PyObject *__pyx_float_neg__3731348;
  PyObject *__pyx_float_neg__3860122;
  PyObject *__pyx_float_neg__4005545;
  PyObject *__pyx_float_neg__4163269;
  PyObject *__pyx_float_neg__4334446;
  PyObject *__pyx_float_neg__00687337;
  PyObject *__pyx_float_neg__01000904;
  PyObject *__pyx_float_neg__08157508;
  PyObject *__pyx_float_neg__09527918;
  PyObject *__pyx_float_neg__000137555;
  PyObject *__pyx_float_neg__0000012807;
  PyObject *__pyx_float_neg__0000600859;
  PyObject *__pyx_float_neg__0001651660;
  PyObject *__pyx_float_neg__0007700127;
  PyObject *__pyx_float_neg__0020967027;
  PyObject *__pyx_float_neg__0041524329;
  PyObject *__pyx_float_neg__00001384355;
  PyObject *__pyx_float_neg__000000193817;
  PyObject *__pyx_float_neg__00000001027272;
  PyObject *__pyx_int_0;
  PyObject *__pyx_int_1;
  PyObject *__pyx_int_2;
  PyObject *__pyx_int_3;
  PyObject *__pyx_int_4;
  PyObject *__pyx_int_5;
  PyObject *__pyx_int_6;
  PyObject *__pyx_int_7;
  PyObject *__pyx_int_8;
  PyObject *__pyx_int_9;
  PyObject *__pyx_int_10;
  PyObject *__pyx_int_100;
  PyObject *__pyx_int_128;
  PyObject *__pyx_int_512;
  PyObject *__pyx_int_4328264;
  PyObject *__pyx_int_6431051;
  PyObject *__pyx_int_7189371;
  PyObject *__pyx_int_8089851;
  PyObject *__pyx_int_8455662;
  PyObject *__pyx_int_9011761;
  PyObject *__pyx_int_9695810;
  PyObject *__pyx_int_10165065;
  PyObject *__pyx_int_14011399;
  PyObject *__pyx_int_14828874;
  PyObject *__pyx_int_14975952;
  PyObject *__pyx_int_16473016;
  PyObject *__pyx_int_17204615;
  PyObject *__pyx_int_19846739;
  PyObject *__pyx_int_22572774;
  PyObject *__pyx_int_24494209;
  PyObject *__pyx_int_25414310;
  PyObject *__pyx_int_27861694;
  PyObject *__pyx_int_28216571;
  PyObject *__pyx_int_29168483;
  PyObject *__pyx_int_29803235;
  PyObject *__pyx_int_33150030;
  PyObject *__pyx_int_35482709;
  PyObject *__pyx_int_35949077;
  PyObject *__pyx_int_36267824;
  PyObject *__pyx_int_38153256;
  PyObject *__pyx_int_38339493;
  PyObject *__pyx_int_39153840;
  PyObject *__pyx_int_43452093;
  PyObject *__pyx_int_44313570;
  PyObject *__pyx_int_48941122;
  PyObject *__pyx_int_49475411;
  PyObject *__pyx_int_56324287;
  PyObject *__pyx_int_56550309;
  PyObject *__pyx_int_57753464;
  PyObject *__pyx_int_58026155;
  PyObject *__pyx_int_60215003;
  PyObject *__pyx_int_61524905;
  PyObject *__pyx_int_62874594;
  PyObject *__pyx_int_64927267;
  PyObject *__pyx_int_75984122;
  PyObject *__pyx_int_81718022;
  PyObject *__pyx_int_82299867;
  PyObject *__pyx_int_83731376;
  PyObject *__pyx_int_83943461;
  PyObject *__pyx_int_89407914;
  PyObject *__pyx_int_90560465;
  PyObject *__pyx_int_90806753;
  PyObject *__pyx_int_93173464;
  PyObject *__pyx_int_93234418;
  PyObject *__pyx_int_94252077;
  PyObject *__pyx_int_95048614;
  PyObject *__pyx_int_96942813;
  PyObject *__pyx_int_97846830;
  PyObject *__pyx_int_99923986;
  PyObject *__pyx_int_100967284;
  PyObject *__pyx_int_101808146;
  PyObject *__pyx_int_103203137;
  PyObject *__pyx_int_103886015;
  PyObject *__pyx_int_105646596;
  PyObject *__pyx_int_105786433;
  PyObject *__pyx_int_108802371;
  PyObject *__pyx_int_109999513;
  PyObject *__pyx_int_114002020;
  PyObject *__pyx_int_117047762;
  PyObject *__pyx_int_118435233;
  PyObject *__pyx_int_120077725;
  PyObject *__pyx_int_121268523;
  PyObject *__pyx_int_121669262;
  PyObject *__pyx_int_123870349;
  PyObject *__pyx_int_127044661;
  PyObject *__pyx_int_127565017;
  PyObject *__pyx_int_131487801;
  PyObject *__pyx_int_134697328;
  PyObject *__pyx_int_134779209;
  PyObject *__pyx_int_135827999;
  PyObject *__pyx_int_136014572;
  PyObject *__pyx_int_138134742;
  PyObject *__pyx_int_139350794;
  PyObject *__pyx_int_140324773;
  PyObject *__pyx_int_143031090;
  PyObject *__pyx_int_144439432;
  PyObject *__pyx_int_146847058;
  PyObject *__pyx_int_147363750;
  PyObject *__pyx_int_148272179;
  PyObject *__pyx_int_149852974;
  PyObject *__pyx_int_150399202;
  PyObject *__pyx_int_150798460;
  PyObject *__pyx_int_150816533;
  PyObject *__pyx_int_150941660;
  PyObject *__pyx_int_152846879;
  PyObject *__pyx_int_153277992;
  PyObject *__pyx_int_155011743;
  PyObject *__pyx_int_158694560;
  PyObject *__pyx_int_160277609;
  PyObject *__pyx_int_160593119;
  PyObject *__pyx_int_165472083;
  PyObject *__pyx_int_166068038;
  PyObject *__pyx_int_169112353;
  PyObject *__pyx_int_170471409;
  PyObject *__pyx_int_171232032;
  PyObject *__pyx_int_173110512;
  PyObject *__pyx_int_174562005;
  PyObject *__pyx_int_175203516;
  PyObject *__pyx_int_177559970;
  PyObject *__pyx_int_178322785;
  PyObject *__pyx_int_178981920;
  PyObject *__pyx_int_180736322;
  PyObject *__pyx_int_184566456;
  PyObject *__pyx_int_188214648;
  PyObject *__pyx_int_190776647;
  PyObject *__pyx_int_191989756;
  PyObject *__pyx_int_193049109;
  PyObject *__pyx_int_196047615;
  PyObject *__pyx_int_199292263;
  PyObject *__pyx_int_202207497;
  PyObject *__pyx_int_203726100;
  PyObject *__pyx_int_208169003;
  PyObject *__pyx_int_209685500;
  PyObject *__pyx_int_213175882;
  PyObject *__pyx_int_217886057;
  PyObject *__pyx_int_222419149;
  PyObject *__pyx_int_227304315;
  PyObject *__pyx_int_228825662;
  PyObject *__pyx_int_231905918;
  PyObject *__pyx_int_233007199;
  PyObject *__pyx_int_234936116;
  PyObject *__pyx_int_235111476;
  PyObject *__pyx_int_236300599;
  PyObject *__pyx_int_237498805;
  PyObject *__pyx_int_238530126;
  PyObject *__pyx_int_238750788;
  PyObject *__pyx_int_241904987;
  PyObject *__pyx_int_242608964;
  PyObject *__pyx_int_243792574;
  PyObject *__pyx_int_244411994;
  PyObject *__pyx_int_246568357;
  PyObject *__pyx_int_246844032;
  PyObject *__pyx_int_254343081;
  PyObject *__pyx_int_255285684;
  PyObject *__pyx_int_255539553;
  PyObject *__pyx_int_258104651;
  PyObject *__pyx_int_263069812;
  PyObject *__pyx_int_263863157;
  PyObject *__pyx_int_266373226;
  PyObject *__pyx_int_266943092;
  PyObject *__pyx_int_267403128;
  PyObject *__pyx_int_neg_1;
  PyObject *__pyx_k__18;
  PyObject *__pyx_k__19;
  PyObject *__pyx_k__22;
  PyObject *__pyx_k__23;
  PyObject *__pyx_tuple__3;
  PyObject *__pyx_tuple__5;
  PyObject *__pyx_tuple__6;
  PyObject *__pyx_tuple__7;
  PyObject *__pyx_tuple__9;
  PyObject *__pyx_tuple__13;
  PyObject *__pyx_tuple__14;
  PyObject *__pyx_tuple__17;
  PyObject *__pyx_tuple__20;
  PyObject *__pyx_tuple__24;
  PyObject *__pyx_tuple__25;
  PyObject *__pyx_tuple__26;
  PyObject *__pyx_tuple__27;
  PyObject *__pyx_tuple__28;
  PyObject *__pyx_tuple__29;
  PyObject *__pyx_tuple__30;
  PyObject *__pyx_tuple__31;
  PyObject *__pyx_tuple__32;
  PyObject *__pyx_tuple__33;
  PyObject *__pyx_tuple__34;
  PyObject *__pyx_tuple__35;
  PyObject *__pyx_tuple__36;
  PyObject *__pyx_tuple__37;
  PyObject *__pyx_tuple__38;
  PyObject *__pyx_tuple__39;
  PyObject *__pyx_tuple__40;
  PyObject *__pyx_tuple__41;
  PyObject *__pyx_tuple__42;
  PyObject *__pyx_tuple__43;
  PyObject *__pyx_tuple__44;
  PyObject *__pyx_tuple__45;
  PyObject *__pyx_tuple__46;
  PyObject *__pyx_tuple__47;
  PyObject *__pyx_tuple__48;
  PyObject *__pyx_tuple__49;
  PyObject *__pyx_tuple__50;
  PyObject *__pyx_tuple__51;
  PyObject *__pyx_tuple__52;
  PyObject *__pyx_tuple__53;
  PyObject *__pyx_tuple__54;
  PyObject *__pyx_tuple__55;
  PyObject *__pyx_tuple__56;
  PyObject *__pyx_tuple__57;
  PyObject *__pyx_tuple__58;
  PyObject *__pyx_tuple__59;
  PyObject *__pyx_tuple__60;
  PyObject *__pyx_tuple__61;
  PyObject *__pyx_tuple__62;
  PyObject *__pyx_tuple__63;
  PyObject *__pyx_tuple__64;
  PyObject *__pyx_tuple__65;
  PyObject *__pyx_tuple__66;
  PyObject *__pyx_tuple__67;
  PyObject *__pyx_tuple__68;
  PyObject *__pyx_tuple__69;
  PyObject *__pyx_tuple__70;
  PyObject *__pyx_tuple__71;
  PyObject *__pyx_tuple__72;
  PyObject *__pyx_tuple__73;
  PyObject *__pyx_tuple__74;
  PyObject *__pyx_tuple__76;
  PyObject *__pyx_tuple__77;
  PyObject *__pyx_tuple__79;
  PyObject *__pyx_tuple__82;
  PyObject *__pyx_tuple__85;
  PyObject *__pyx_tuple__87;
  PyObject *__pyx_tuple__88;
  PyObject *__pyx_tuple__90;
  PyObject *__pyx_tuple__91;
  PyObject *__pyx_tuple__93;
  PyObject *__pyx_tuple__95;
  PyObject *__pyx_tuple__98;
  PyObject *__pyx_codeobj__4;
  PyObject *__pyx_codeobj__8;
  PyObject *__pyx_tuple__102;
  PyObject *__pyx_tuple__104;
  PyObject *__pyx_tuple__107;
  PyObject *__pyx_tuple__111;
  PyObject *__pyx_tuple__113;
  PyObject *__pyx_tuple__116;
  PyObject *__pyx_tuple__120;
  PyObject *__pyx_tuple__122;
  PyObject *__pyx_tuple__125;
  PyObject *__pyx_tuple__129;
  PyObject *__pyx_tuple__131;
  PyObject *__pyx_tuple__133;
  PyObject *__pyx_tuple__136;
  PyObject *__pyx_tuple__140;
  PyObject *__pyx_tuple__142;
  PyObject *__pyx_tuple__145;
  PyObject *__pyx_tuple__149;
  PyObject *__pyx_tuple__151;
  PyObject *__pyx_tuple__154;
  PyObject *__pyx_tuple__158;
  PyObject *__pyx_tuple__160;
  PyObject *__pyx_tuple__163;
  PyObject *__pyx_tuple__166;
  PyObject *__pyx_tuple__168;
  PyObject *__pyx_tuple__170;
  PyObject *__pyx_tuple__173;
  PyObject *__pyx_tuple__178;
  PyObject *__pyx_tuple__181;
  PyObject *__pyx_tuple__186;
  PyObject *__pyx_tuple__189;
  PyObject *__pyx_tuple__194;
  PyObject *__pyx_tuple__196;
  PyObject *__pyx_tuple__199;
  PyObject *__pyx_tuple__204;
  PyObject *__pyx_tuple__206;
  PyObject *__pyx_tuple__208;
  PyObject *__pyx_tuple__210;
  PyObject *__pyx_tuple__213;
  PyObject *__pyx_tuple__217;
  PyObject *__pyx_tuple__219;
  PyObject *__pyx_tuple__222;
  PyObject *__pyx_tuple__223;
  PyObject *__pyx_tuple__225;
  PyObject *__pyx_tuple__228;
  PyObject *__pyx_tuple__230;
  PyObject *__pyx_tuple__232;
  PyObject *__pyx_tuple__233;
  PyObject *__pyx_tuple__235;
  PyObject *__pyx_tuple__238;
  PyObject *__pyx_tuple__240;
  PyObject *__pyx_tuple__244;
  PyObject *__pyx_tuple__246;
  PyObject *__pyx_tuple__248;
  PyObject *__pyx_tuple__251;
  PyObject *__pyx_tuple__256;
  PyObject *__pyx_tuple__259;
  PyObject *__pyx_tuple__264;
  PyObject *__pyx_tuple__267;
  PyObject *__pyx_tuple__272;
  PyObject *__pyx_tuple__275;
  PyObject *__pyx_tuple__280;
  PyObject *__pyx_tuple__283;
  PyObject *__pyx_tuple__286;
  PyObject *__pyx_tuple__289;
  PyObject *__pyx_tuple__292;
  PyObject *__pyx_tuple__294;
  PyObject *__pyx_tuple__297;
  PyObject *__pyx_tuple__299;
  PyObject *__pyx_tuple__301;
  PyObject *__pyx_tuple__303;
  PyObject *__pyx_tuple__306;
  PyObject *__pyx_tuple__310;
  PyObject *__pyx_tuple__312;
  PyObject *__pyx_tuple__315;
  PyObject *__pyx_tuple__319;
  PyObject *__pyx_tuple__321;
  PyObject *__pyx_tuple__324;
  PyObject *__pyx_tuple__326;
  PyObject *__pyx_tuple__330;
  PyObject *__pyx_tuple__332;
  PyObject *__pyx_tuple__335;
  PyObject *__pyx_tuple__339;
  PyObject *__pyx_tuple__341;
  PyObject *__pyx_tuple__344;
  PyObject *__pyx_tuple__348;
  PyObject *__pyx_tuple__350;
  PyObject *__pyx_tuple__353;
  PyObject *__pyx_tuple__357;
  PyObject *__pyx_tuple__359;
  PyObject *__pyx_tuple__362;
  PyObject *__pyx_tuple__366;
  PyObject *__pyx_tuple__368;
  PyObject *__pyx_tuple__371;
  PyObject *__pyx_tuple__375;
  PyObject *__pyx_tuple__377;
  PyObject *__pyx_tuple__380;
  PyObject *__pyx_tuple__384;
  PyObject *__pyx_tuple__386;
  PyObject *__pyx_tuple__389;
  PyObject *__pyx_tuple__393;
  PyObject *__pyx_tuple__395;
  PyObject *__pyx_tuple__398;
  PyObject *__pyx_tuple__402;
  PyObject *__pyx_tuple__404;
  PyObject *__pyx_tuple__407;
  PyObject *__pyx_tuple__411;
  PyObject *__pyx_tuple__413;
  PyObject *__pyx_tuple__416;
  PyObject *__pyx_tuple__420;
  PyObject *__pyx_tuple__422;
  PyObject *__pyx_tuple__425;
  PyObject *__pyx_tuple__428;
  PyObject *__pyx_tuple__430;
  PyObject *__pyx_tuple__432;
  PyObject *__pyx_tuple__435;
  PyObject *__pyx_tuple__438;
  PyObject *__pyx_tuple__440;
  PyObject *__pyx_tuple__442;
  PyObject *__pyx_tuple__445;
  PyObject *__pyx_tuple__450;
  PyObject *__pyx_tuple__453;
  PyObject *__pyx_tuple__456;
  PyObject *__pyx_tuple__458;
  PyObject *__pyx_tuple__460;
  PyObject *__pyx_tuple__463;
  PyObject *__pyx_tuple__467;
  PyObject *__pyx_tuple__469;
  PyObject *__pyx_tuple__472;
  PyObject *__pyx_tuple__476;
  PyObject *__pyx_tuple__478;
  PyObject *__pyx_tuple__481;
  PyObject *__pyx_tuple__485;
  PyObject *__pyx_tuple__487;
  PyObject *__pyx_tuple__490;
  PyObject *__pyx_tuple__495;
  PyObject *__pyx_tuple__498;
  PyObject *__pyx_tuple__501;
  PyObject *__pyx_tuple__503;
  PyObject *__pyx_tuple__505;
  PyObject *__pyx_tuple__508;
  PyObject *__pyx_tuple__512;
  PyObject *__pyx_tuple__514;
  PyObject *__pyx_tuple__517;
  PyObject *__pyx_tuple__521;
  PyObject *__pyx_tuple__523;
  PyObject *__pyx_tuple__526;
  PyObject *__pyx_tuple__528;
  PyObject *__pyx_tuple__530;
  PyObject *__pyx_tuple__533;
  PyObject *__pyx_tuple__535;
  PyObject *__pyx_tuple__537;
  PyObject *__pyx_tuple__539;
  PyObject *__pyx_tuple__541;
  PyObject *__pyx_tuple__544;
  PyObject *__pyx_tuple__548;
  PyObject *__pyx_tuple__550;
  PyObject *__pyx_tuple__553;
  PyObject *__pyx_tuple__556;
  PyObject *__pyx_tuple__558;
  PyObject *__pyx_tuple__560;
  PyObject *__pyx_tuple__563;
  PyObject *__pyx_tuple__566;
  PyObject *__pyx_tuple__569;
  PyObject *__pyx_tuple__572;
  PyObject *__pyx_tuple__575;
  PyObject *__pyx_tuple__577;
  PyObject *__pyx_tuple__579;
  PyObject *__pyx_tuple__582;
  PyObject *__pyx_tuple__586;
  PyObject *__pyx_tuple__588;
  PyObject *__pyx_tuple__591;
  PyObject *__pyx_tuple__594;
  PyObject *__pyx_tuple__596;
  PyObject *__pyx_tuple__598;
  PyObject *__pyx_tuple__601;
  PyObject *__pyx_tuple__606;
  PyObject *__pyx_tuple__609;
  PyObject *__pyx_tuple__612;
  PyObject *__pyx_tuple__614;
  PyObject *__pyx_tuple__616;
  PyObject *__pyx_tuple__619;
  PyObject *__pyx_tuple__623;
  PyObject *__pyx_tuple__625;
  PyObject *__pyx_tuple__628;
  PyObject *__pyx_tuple__629;
  PyObject *__pyx_tuple__635;
  PyObject *__pyx_tuple__638;
  PyObject *__pyx_tuple__641;
  PyObject *__pyx_tuple__643;
  PyObject *__pyx_tuple__645;
  PyObject *__pyx_tuple__648;
  PyObject *__pyx_tuple__654;
  PyObject *__pyx_tuple__657;
  PyObject *__pyx_tuple__662;
  PyObject *__pyx_tuple__664;
  PyObject *__pyx_tuple__667;
  PyObject *__pyx_tuple__670;
  PyObject *__pyx_tuple__672;
  PyObject *__pyx_tuple__674;
  PyObject *__pyx_tuple__677;
  PyObject *__pyx_tuple__681;
  PyObject *__pyx_tuple__683;
  PyObject *__pyx_tuple__686;
  PyObject *__pyx_tuple__690;
  PyObject *__pyx_tuple__692;
  PyObject *__pyx_tuple__695;
  PyObject *__pyx_tuple__698;
  PyObject *__pyx_tuple__700;
  PyObject *__pyx_tuple__702;
  PyObject *__pyx_tuple__704;
  PyObject *__pyx_tuple__708;
  PyObject *__pyx_tuple__711;
  PyObject *__pyx_tuple__713;
  PyObject *__pyx_tuple__715;
  PyObject *__pyx_tuple__717;
  PyObject *__pyx_tuple__721;
  PyObject *__pyx_tuple__724;
  PyObject *__pyx_tuple__728;
  PyObject *__pyx_tuple__730;
  PyObject *__pyx_tuple__733;
  PyObject *__pyx_tuple__738;
  PyObject *__pyx_tuple__741;
  PyObject *__pyx_tuple__744;
  PyObject *__pyx_tuple__746;
  PyObject *__pyx_tuple__748;
  PyObject *__pyx_tuple__751;
  PyObject *__pyx_tuple__754;
  PyObject *__pyx_tuple__756;
  PyObject *__pyx_tuple__758;
  PyObject *__pyx_tuple__761;
  PyObject *__pyx_tuple__764;
  PyObject *__pyx_tuple__767;
  PyObject *__pyx_tuple__770;
  PyObject *__pyx_tuple__775;
  PyObject *__pyx_tuple__777;
  PyObject *__pyx_tuple__779;
  PyObject *__pyx_tuple__783;
  PyObject *__pyx_tuple__784;
  PyObject *__pyx_tuple__786;
  PyObject *__pyx_tuple__789;
  PyObject *__pyx_tuple__794;
  PyObject *__pyx_tuple__797;
  PyObject *__pyx_tuple__802;
  PyObject *__pyx_tuple__808;
  PyObject *__pyx_tuple__811;
  PyObject *__pyx_tuple__816;
  PyObject *__pyx_tuple__819;
  PyObject *__pyx_tuple__824;
  PyObject *__pyx_tuple__826;
  PyObject *__pyx_tuple__829;
  PyObject *__pyx_tuple__834;
  PyObject *__pyx_tuple__838;
  PyObject *__pyx_tuple__840;
  PyObject *__pyx_tuple__842;
  PyObject *__pyx_tuple__844;
  PyObject *__pyx_tuple__845;
  PyObject *__pyx_tuple__849;
  PyObject *__pyx_tuple__851;
  PyObject *__pyx_tuple__854;
  PyObject *__pyx_codeobj__10;
  PyObject *__pyx_codeobj__11;
  PyObject *__pyx_codeobj__12;
  PyObject *__pyx_codeobj__15;
  PyObject *__pyx_codeobj__16;
  PyObject *__pyx_codeobj__21;
  PyObject *__pyx_codeobj__75;
  PyObject *__pyx_codeobj__78;
  PyObject *__pyx_codeobj__80;
  PyObject *__pyx_codeobj__81;
  PyObject *__pyx_codeobj__83;
  PyObject *__pyx_codeobj__84;
  PyObject *__pyx_codeobj__86;
  PyObject *__pyx_codeobj__89;
  PyObject *__pyx_codeobj__92;
  PyObject *__pyx_codeobj__94;
  PyObject *__pyx_codeobj__96;
  PyObject *__pyx_codeobj__97;
  PyObject *__pyx_codeobj__99;
  PyObject *__pyx_codeobj__100;
  PyObject *__pyx_codeobj__101;
  PyObject *__pyx_codeobj__103;
  PyObject *__pyx_codeobj__105;
  PyObject *__pyx_codeobj__106;
  PyObject *__pyx_codeobj__108;
  PyObject *__pyx_codeobj__109;
  PyObject *__pyx_codeobj__110;
  PyObject *__pyx_codeobj__112;
  PyObject *__pyx_codeobj__114;
  PyObject *__pyx_codeobj__115;
  PyObject *__pyx_codeobj__117;
  PyObject *__pyx_codeobj__118;
  PyObject *__pyx_codeobj__119;
  PyObject *__pyx_codeobj__121;
  PyObject *__pyx_codeobj__123;
  PyObject *__pyx_codeobj__124;
  PyObject *__pyx_codeobj__126;
  PyObject *__pyx_codeobj__127;
  PyObject *__pyx_codeobj__128;
  PyObject *__pyx_codeobj__130;
  PyObject *__pyx_codeobj__132;
  PyObject *__pyx_codeobj__134;
  PyObject *__pyx_codeobj__135;
  PyObject *__pyx_codeobj__137;
  PyObject *__pyx_codeobj__138;
  PyObject *__pyx_codeobj__139;
  PyObject *__pyx_codeobj__141;
  PyObject *__pyx_codeobj__143;
  PyObject *__pyx_codeobj__144;
  PyObject *__pyx_codeobj__146;
  PyObject *__pyx_codeobj__147;
  PyObject *__pyx_codeobj__148;
  PyObject *__pyx_codeobj__150;
  PyObject *__pyx_codeobj__152;
  PyObject *__pyx_codeobj__153;
  PyObject *__pyx_codeobj__155;
  PyObject *__pyx_codeobj__156;
  PyObject *__pyx_codeobj__157;
  PyObject *__pyx_codeobj__159;
  PyObject *__pyx_codeobj__161;
  PyObject *__pyx_codeobj__162;
  PyObject *__pyx_codeobj__164;
  PyObject *__pyx_codeobj__165;
  PyObject *__pyx_codeobj__167;
  PyObject *__pyx_codeobj__169;
  PyObject *__pyx_codeobj__171;
  PyObject *__pyx_codeobj__172;
  PyObject *__pyx_codeobj__174;
  PyObject *__pyx_codeobj__175;
  PyObject *__pyx_codeobj__176;
  PyObject *__pyx_codeobj__177;
  PyObject *__pyx_codeobj__179;
  PyObject *__pyx_codeobj__180;
  PyObject *__pyx_codeobj__182;
  PyObject *__pyx_codeobj__183;
  PyObject *__pyx_codeobj__184;
  PyObject *__pyx_codeobj__185;
  PyObject *__pyx_codeobj__187;
  PyObject *__pyx_codeobj__188;
  PyObject *__pyx_codeobj__190;
  PyObject *__pyx_codeobj__191;
  PyObject *__pyx_codeobj__192;
  PyObject *__pyx_codeobj__193;
  PyObject *__pyx_codeobj__195;
  PyObject *__pyx_codeobj__197;
  PyObject *__pyx_codeobj__198;
  PyObject *__pyx_codeobj__200;
  PyObject *__pyx_codeobj__201;
  PyObject *__pyx_codeobj__202;
  PyObject *__pyx_codeobj__203;
  PyObject *__pyx_codeobj__205;
  PyObject *__pyx_codeobj__207;
  PyObject *__pyx_codeobj__209;
  PyObject *__pyx_codeobj__211;
  PyObject *__pyx_codeobj__212;
  PyObject *__pyx_codeobj__214;
  PyObject *__pyx_codeobj__215;
  PyObject *__pyx_codeobj__216;
  PyObject *__pyx_codeobj__218;
  PyObject *__pyx_codeobj__220;
  PyObject *__pyx_codeobj__221;
  PyObject *__pyx_codeobj__224;
  PyObject *__pyx_codeobj__226;
  PyObject *__pyx_codeobj__227;
  PyObject *__pyx_codeobj__229;
  PyObject *__pyx_codeobj__231;
  PyObject *__pyx_codeobj__234;
  PyObject *__pyx_codeobj__236;
  PyObject *__pyx_codeobj__237;
  PyObject *__pyx_codeobj__239;
  PyObject *__pyx_codeobj__241;
  PyObject *__pyx_codeobj__242;
  PyObject *__pyx_codeobj__243;
  PyObject *__pyx_codeobj__245;
  PyObject *__pyx_codeobj__247;
  PyObject *__pyx_codeobj__249;
  PyObject *__pyx_codeobj__250;
  PyObject *__pyx_codeobj__252;
  PyObject *__pyx_codeobj__253;
  PyObject *__pyx_codeobj__254;
  PyObject *__pyx_codeobj__255;
  PyObject *__pyx_codeobj__257;
  PyObject *__pyx_codeobj__258;
  PyObject *__pyx_codeobj__260;
  PyObject *__pyx_codeobj__261;
  PyObject *__pyx_codeobj__262;
  PyObject *__pyx_codeobj__263;
  PyObject *__pyx_codeobj__265;
  PyObject *__pyx_codeobj__266;
  PyObject *__pyx_codeobj__268;
  PyObject *__pyx_codeobj__269;
  PyObject *__pyx_codeobj__270;
  PyObject *__pyx_codeobj__271;
  PyObject *__pyx_codeobj__273;
  PyObject *__pyx_codeobj__274;
  PyObject *__pyx_codeobj__276;
  PyObject *__pyx_codeobj__277;
  PyObject *__pyx_codeobj__278;
  PyObject *__pyx_codeobj__279;
  PyObject *__pyx_codeobj__281;
  PyObject *__pyx_codeobj__282;
  PyObject *__pyx_codeobj__284;
  PyObject *__pyx_codeobj__285;
  PyObject *__pyx_codeobj__287;
  PyObject *__pyx_codeobj__288;
  PyObject *__pyx_codeobj__290;
  PyObject *__pyx_codeobj__291;
  PyObject *__pyx_codeobj__293;
  PyObject *__pyx_codeobj__295;
  PyObject *__pyx_codeobj__296;
  PyObject *__pyx_codeobj__298;
  PyObject *__pyx_codeobj__300;
  PyObject *__pyx_codeobj__302;
  PyObject *__pyx_codeobj__304;
  PyObject *__pyx_codeobj__305;
  PyObject *__pyx_codeobj__307;
  PyObject *__pyx_codeobj__308;
  PyObject *__pyx_codeobj__309;
  PyObject *__pyx_codeobj__311;
  PyObject *__pyx_codeobj__313;
  PyObject *__pyx_codeobj__314;
  PyObject *__pyx_codeobj__316;
  PyObject *__pyx_codeobj__317;
  PyObject *__pyx_codeobj__318;
  PyObject *__pyx_codeobj__320;
  PyObject *__pyx_codeobj__322;
  PyObject *__pyx_codeobj__323;
  PyObject *__pyx_codeobj__325;
  PyObject *__pyx_codeobj__327;
  PyObject *__pyx_codeobj__328;
  PyObject *__pyx_codeobj__329;
  PyObject *__pyx_codeobj__331;
  PyObject *__pyx_codeobj__333;
  PyObject *__pyx_codeobj__334;
  PyObject *__pyx_codeobj__336;
  PyObject *__pyx_codeobj__337;
  PyObject *__pyx_codeobj__338;
  PyObject *__pyx_codeobj__340;
  PyObject *__pyx_codeobj__342;
  PyObject *__pyx_codeobj__343;
  PyObject *__pyx_codeobj__345;
  PyObject *__pyx_codeobj__346;
  PyObject *__pyx_codeobj__347;
  PyObject *__pyx_codeobj__349;
  PyObject *__pyx_codeobj__351;
  PyObject *__pyx_codeobj__352;
  PyObject *__pyx_codeobj__354;
  PyObject *__pyx_codeobj__355;
  PyObject *__pyx_codeobj__356;
  PyObject *__pyx_codeobj__358;
  PyObject *__pyx_codeobj__360;
  PyObject *__pyx_codeobj__361;
  PyObject *__pyx_codeobj__363;
  PyObject *__pyx_codeobj__364;
  PyObject *__pyx_codeobj__365;
  PyObject *__pyx_codeobj__367;
  PyObject *__pyx_codeobj__369;
  PyObject *__pyx_codeobj__370;
  PyObject *__pyx_codeobj__372;
  PyObject *__pyx_codeobj__373;
  PyObject *__pyx_codeobj__374;
  PyObject *__pyx_codeobj__376;
  PyObject *__pyx_codeobj__378;
  PyObject *__pyx_codeobj__379;
  PyObject *__pyx_codeobj__381;
  PyObject *__pyx_codeobj__382;
  PyObject *__pyx_codeobj__383;
  PyObject *__pyx_codeobj__385;
  PyObject *__pyx_codeobj__387;
  PyObject *__pyx_codeobj__388;
  PyObject *__pyx_codeobj__390;
  PyObject *__pyx_codeobj__391;
  PyObject *__pyx_codeobj__392;
  PyObject *__pyx_codeobj__394;
  PyObject *__pyx_codeobj__396;
  PyObject *__pyx_codeobj__397;
  PyObject *__pyx_codeobj__399;
  PyObject *__pyx_codeobj__400;
  PyObject *__pyx_codeobj__401;
  PyObject *__pyx_codeobj__403;
  PyObject *__pyx_codeobj__405;
  PyObject *__pyx_codeobj__406;
  PyObject *__pyx_codeobj__408;
  PyObject *__pyx_codeobj__409;
  PyObject *__pyx_codeobj__410;
  PyObject *__pyx_codeobj__412;
  PyObject *__pyx_codeobj__414;
  PyObject *__pyx_codeobj__415;
  PyObject *__pyx_codeobj__417;
  PyObject *__pyx_codeobj__418;
  PyObject *__pyx_codeobj__419;
  PyObject *__pyx_codeobj__421;
  PyObject *__pyx_codeobj__423;
  PyObject *__pyx_codeobj__424;
  PyObject *__pyx_codeobj__426;
  PyObject *__pyx_codeobj__427;
  PyObject *__pyx_codeobj__429;
  PyObject *__pyx_codeobj__431;
  PyObject *__pyx_codeobj__433;
  PyObject *__pyx_codeobj__434;
  PyObject *__pyx_codeobj__436;
  PyObject *__pyx_codeobj__437;
  PyObject *__pyx_codeobj__439;
  PyObject *__pyx_codeobj__441;
  PyObject *__pyx_codeobj__443;
  PyObject *__pyx_codeobj__444;
  PyObject *__pyx_codeobj__446;
  PyObject *__pyx_codeobj__447;
  PyObject *__pyx_codeobj__448;
  PyObject *__pyx_codeobj__449;
  PyObject *__pyx_codeobj__451;
  PyObject *__pyx_codeobj__452;
  PyObject *__pyx_codeobj__454;
  PyObject *__pyx_codeobj__455;
  PyObject *__pyx_codeobj__457;
  PyObject *__pyx_codeobj__459;
  PyObject *__pyx_codeobj__461;
  PyObject *__pyx_codeobj__462;
  PyObject *__pyx_codeobj__464;
  PyObject *__pyx_codeobj__465;
  PyObject *__pyx_codeobj__466;
  PyObject *__pyx_codeobj__468;
  PyObject *__pyx_codeobj__470;
  PyObject *__pyx_codeobj__471;
  PyObject *__pyx_codeobj__473;
  PyObject *__pyx_codeobj__474;
  PyObject *__pyx_codeobj__475;
  PyObject *__pyx_codeobj__477;
  PyObject *__pyx_codeobj__479;
  PyObject *__pyx_codeobj__480;
  PyObject *__pyx_codeobj__482;
  PyObject *__pyx_codeobj__483;
  PyObject *__pyx_codeobj__484;
  PyObject *__pyx_codeobj__486;
  PyObject *__pyx_codeobj__488;
  PyObject *__pyx_codeobj__489;
  PyObject *__pyx_codeobj__491;
  PyObject *__pyx_codeobj__492;
  PyObject *__pyx_codeobj__493;
  PyObject *__pyx_codeobj__494;
  PyObject *__pyx_codeobj__496;
  PyObject *__pyx_codeobj__497;
  PyObject *__pyx_codeobj__499;
  PyObject *__pyx_codeobj__500;
  PyObject *__pyx_codeobj__502;
  PyObject *__pyx_codeobj__504;
  PyObject *__pyx_codeobj__506;
  PyObject *__pyx_codeobj__507;
  PyObject *__pyx_codeobj__509;
  PyObject *__pyx_codeobj__510;
  PyObject *__pyx_codeobj__511;
  PyObject *__pyx_codeobj__513;
  PyObject *__pyx_codeobj__515;
  PyObject *__pyx_codeobj__516;
  PyObject *__pyx_codeobj__518;
  PyObject *__pyx_codeobj__519;
  PyObject *__pyx_codeobj__520;
  PyObject *__pyx_codeobj__522;
  PyObject *__pyx_codeobj__524;
  PyObject *__pyx_codeobj__525;
  PyObject *__pyx_codeobj__527;
  PyObject *__pyx_codeobj__529;
  PyObject *__pyx_codeobj__531;
  PyObject *__pyx_codeobj__532;
  PyObject *__pyx_codeobj__534;
  PyObject *__pyx_codeobj__536;
  PyObject *__pyx_codeobj__538;
  PyObject *__pyx_codeobj__540;
  PyObject *__pyx_codeobj__542;
  PyObject *__pyx_codeobj__543;
  PyObject *__pyx_codeobj__545;
  PyObject *__pyx_codeobj__546;
  PyObject *__pyx_codeobj__547;
  PyObject *__pyx_codeobj__549;
  PyObject *__pyx_codeobj__551;
  PyObject *__pyx_codeobj__552;
  PyObject *__pyx_codeobj__554;
  PyObject *__pyx_codeobj__555;
  PyObject *__pyx_codeobj__557;
  PyObject *__pyx_codeobj__559;
  PyObject *__pyx_codeobj__561;
  PyObject *__pyx_codeobj__562;
  PyObject *__pyx_codeobj__564;
  PyObject *__pyx_codeobj__565;
  PyObject *__pyx_codeobj__567;
  PyObject *__pyx_codeobj__568;
  PyObject *__pyx_codeobj__570;
  PyObject *__pyx_codeobj__571;
  PyObject *__pyx_codeobj__573;
  PyObject *__pyx_codeobj__574;
  PyObject *__pyx_codeobj__576;
  PyObject *__pyx_codeobj__578;
  PyObject *__pyx_codeobj__580;
  PyObject *__pyx_codeobj__581;
  PyObject *__pyx_codeobj__583;
  PyObject *__pyx_codeobj__584;
  PyObject *__pyx_codeobj__585;
  PyObject *__pyx_codeobj__587;
  PyObject *__pyx_codeobj__589;
  PyObject *__pyx_codeobj__590;
  PyObject *__pyx_codeobj__592;
  PyObject *__pyx_codeobj__593;
  PyObject *__pyx_codeobj__595;
  PyObject *__pyx_codeobj__597;
  PyObject *__pyx_codeobj__599;
  PyObject *__pyx_codeobj__600;
  PyObject *__pyx_codeobj__602;
  PyObject *__pyx_codeobj__603;
  PyObject *__pyx_codeobj__604;
  PyObject *__pyx_codeobj__605;
  PyObject *__pyx_codeobj__607;
  PyObject *__pyx_codeobj__608;
  PyObject *__pyx_codeobj__610;
  PyObject *__pyx_codeobj__611;
  PyObject *__pyx_codeobj__613;
  PyObject *__pyx_codeobj__615;
  PyObject *__pyx_codeobj__617;
  PyObject *__pyx_codeobj__618;
  PyObject *__pyx_codeobj__620;
  PyObject *__pyx_codeobj__621;
  PyObject *__pyx_codeobj__622;
  PyObject *__pyx_codeobj__624;
  PyObject *__pyx_codeobj__626;
  PyObject *__pyx_codeobj__627;
  PyObject *__pyx_codeobj__630;
  PyObject *__pyx_codeobj__631;
  PyObject *__pyx_codeobj__632;
  PyObject *__pyx_codeobj__633;
  PyObject *__pyx_codeobj__634;
  PyObject *__pyx_codeobj__636;
  PyObject *__pyx_codeobj__637;
  PyObject *__pyx_codeobj__639;
  PyObject *__pyx_codeobj__640;
  PyObject *__pyx_codeobj__642;
  PyObject *__pyx_codeobj__644;
  PyObject *__pyx_codeobj__646;
  PyObject *__pyx_codeobj__647;
  PyObject *__pyx_codeobj__649;
  PyObject *__pyx_codeobj__650;
  PyObject *__pyx_codeobj__651;
  PyObject *__pyx_codeobj__652;
  PyObject *__pyx_codeobj__653;
  PyObject *__pyx_codeobj__655;
  PyObject *__pyx_codeobj__656;
  PyObject *__pyx_codeobj__658;
  PyObject *__pyx_codeobj__659;
  PyObject *__pyx_codeobj__660;
  PyObject *__pyx_codeobj__661;
  PyObject *__pyx_codeobj__663;
  PyObject *__pyx_codeobj__665;
  PyObject *__pyx_codeobj__666;
  PyObject *__pyx_codeobj__668;
  PyObject *__pyx_codeobj__669;
  PyObject *__pyx_codeobj__671;
  PyObject *__pyx_codeobj__673;
  PyObject *__pyx_codeobj__675;
  PyObject *__pyx_codeobj__676;
  PyObject *__pyx_codeobj__678;
  PyObject *__pyx_codeobj__679;
  PyObject *__pyx_codeobj__680;
  PyObject *__pyx_codeobj__682;
  PyObject *__pyx_codeobj__684;
  PyObject *__pyx_codeobj__685;
  PyObject *__pyx_codeobj__687;
  PyObject *__pyx_codeobj__688;
  PyObject *__pyx_codeobj__689;
  PyObject *__pyx_codeobj__691;
  PyObject *__pyx_codeobj__693;
  PyObject *__pyx_codeobj__694;
  PyObject *__pyx_codeobj__696;
  PyObject *__pyx_codeobj__697;
  PyObject *__pyx_codeobj__699;
  PyObject *__pyx_codeobj__701;
  PyObject *__pyx_codeobj__703;
  PyObject *__pyx_codeobj__705;
  PyObject *__pyx_codeobj__706;
  PyObject *__pyx_codeobj__707;
  PyObject *__pyx_codeobj__709;
  PyObject *__pyx_codeobj__710;
  PyObject *__pyx_codeobj__712;
  PyObject *__pyx_codeobj__714;
  PyObject *__pyx_codeobj__716;
  PyObject *__pyx_codeobj__718;
  PyObject *__pyx_codeobj__719;
  PyObject *__pyx_codeobj__720;
  PyObject *__pyx_codeobj__722;
  PyObject *__pyx_codeobj__723;
  PyObject *__pyx_codeobj__725;
  PyObject *__pyx_codeobj__726;
  PyObject *__pyx_codeobj__727;
  PyObject *__pyx_codeobj__729;
  PyObject *__pyx_codeobj__731;
  PyObject *__pyx_codeobj__732;
  PyObject *__pyx_codeobj__734;
  PyObject *__pyx_codeobj__735;
  PyObject *__pyx_codeobj__736;
  PyObject *__pyx_codeobj__737;
  PyObject *__pyx_codeobj__739;
  PyObject *__pyx_codeobj__740;
  PyObject *__pyx_codeobj__742;
  PyObject *__pyx_codeobj__743;
  PyObject *__pyx_codeobj__745;
  PyObject *__pyx_codeobj__747;
  PyObject *__pyx_codeobj__749;
  PyObject *__pyx_codeobj__750;
  PyObject *__pyx_codeobj__752;
  PyObject *__pyx_codeobj__753;
  PyObject *__pyx_codeobj__755;
  PyObject *__pyx_codeobj__757;
  PyObject *__pyx_codeobj__759;
  PyObject *__pyx_codeobj__760;
  PyObject *__pyx_codeobj__762;
  PyObject *__pyx_codeobj__763;
  PyObject *__pyx_codeobj__765;
  PyObject *__pyx_codeobj__766;
  PyObject *__pyx_codeobj__768;
  PyObject *__pyx_codeobj__769;
  PyObject *__pyx_codeobj__771;
  PyObject *__pyx_codeobj__772;
  PyObject *__pyx_codeobj__773;
  PyObject *__pyx_codeobj__774;
  PyObject *__pyx_codeobj__776;
  PyObject *__pyx_codeobj__778;
  PyObject *__pyx_codeobj__780;
  PyObject *__pyx_codeobj__781;
  PyObject *__pyx_codeobj__782;
  PyObject *__pyx_codeobj__785;
  PyObject *__pyx_codeobj__787;
  PyObject *__pyx_codeobj__788;
  PyObject *__pyx_codeobj__790;
  PyObject *__pyx_codeobj__791;
  PyObject *__pyx_codeobj__792;
  PyObject *__pyx_codeobj__793;
  PyObject *__pyx_codeobj__795;
  PyObject *__pyx_codeobj__796;
  PyObject *__pyx_codeobj__798;
  PyObject *__pyx_codeobj__799;
  PyObject *__pyx_codeobj__800;
  PyObject *__pyx_codeobj__801;
  PyObject *__pyx_codeobj__803;
  PyObject *__pyx_codeobj__804;
  PyObject *__pyx_codeobj__805;
  PyObject *__pyx_codeobj__806;
  PyObject *__pyx_codeobj__807;
  PyObject *__pyx_codeobj__809;
  PyObject *__pyx_codeobj__810;
  PyObject *__pyx_codeobj__812;
  PyObject *__pyx_codeobj__813;
  PyObject *__pyx_codeobj__814;
  PyObject *__pyx_codeobj__815;
  PyObject *__pyx_codeobj__817;
  PyObject *__pyx_codeobj__818;
  PyObject *__pyx_codeobj__820;
  PyObject *__pyx_codeobj__821;
  PyObject *__pyx_codeobj__822;
  PyObject *__pyx_codeobj__823;
  PyObject *__pyx_codeobj__825;
  PyObject *__pyx_codeobj__827;
  PyObject *__pyx_codeobj__828;
  PyObject *__pyx_codeobj__830;
  PyObject *__pyx_codeobj__831;
  PyObject *__pyx_codeobj__832;
  PyObject *__pyx_codeobj__833;
  PyObject *__pyx_codeobj__835;
  PyObject *__pyx_codeobj__836;
  PyObject *__pyx_codeobj__837;
  PyObject *__pyx_codeobj__839;
  PyObject *__pyx_codeobj__841;
  PyObject *__pyx_codeobj__843;
  PyObject *__pyx_codeobj__846;
  PyObject *__pyx_codeobj__847;
  PyObject *__pyx_codeobj__848;
  PyObject *__pyx_codeobj__850;
  PyObject *__pyx_codeobj__852;
  PyObject *__pyx_codeobj__853;
  PyObject *__pyx_codeobj__855;
  PyObject *__pyx_codeobj__856;
  PyObject *__pyx_codeobj__857;
  PyObject *__pyx_codeobj__858;
  PyObject *__pyx_codeobj__859;
  PyObject *__pyx_codeobj__860;
  PyObject *__pyx_codeobj__861;
  PyObject *__pyx_codeobj__862;
  PyObject *__pyx_codeobj__863;
  PyObject *__pyx_codeobj__864;
  PyObject *__pyx_codeobj__865;
  PyObject *__pyx_codeobj__866;
  PyObject *__pyx_codeobj__867;
  PyObject *__pyx_codeobj__868;
  PyObject *__pyx_codeobj__869;
  PyObject *__pyx_codeobj__870;
  PyObject *__pyx_codeobj__871;
  PyObject *__pyx_codeobj__872;
  PyObject *__pyx_codeobj__873;
  PyObject *__pyx_codeobj__874;
  PyObject *__pyx_codeobj__875;
  PyObject *__pyx_codeobj__876;
  PyObject *__pyx_codeobj__877;
  PyObject *__pyx_codeobj__878;
  PyObject *__pyx_codeobj__879;
  PyObject *__pyx_codeobj__880;
  PyObject *__pyx_codeobj__881;
  PyObject *__pyx_codeobj__882;
  PyObject *__pyx_codeobj__883;
  PyObject *__pyx_codeobj__884;
  PyObject *__pyx_codeobj__885;
  PyObject *__pyx_codeobj__886;
  PyObject *__pyx_codeobj__887;
  PyObject *__pyx_codeobj__888;
  PyObject *__pyx_codeobj__889;
  PyObject *__pyx_codeobj__890;
  PyObject *__pyx_codeobj__891;
  PyObject *__pyx_codeobj__892;
  PyObject *__pyx_codeobj__893;
  PyObject *__pyx_codeobj__894;
  PyObject *__pyx_codeobj__895;
  PyObject *__pyx_codeobj__896;
  PyObject *__pyx_codeobj__897;
  PyObject *__pyx_codeobj__898;
  PyObject *__pyx_codeobj__899;
  PyObject *__pyx_codeobj__900;
  PyObject *__pyx_codeobj__901;
  PyObject *__pyx_codeobj__902;
  PyObject *__pyx_codeobj__903;
  PyObject *__pyx_codeobj__904;
  PyObject *__pyx_codeobj__905;
  PyObject *__pyx_codeobj__906;
  PyObject *__pyx_codeobj__907;
  PyObject *__pyx_codeobj__908;
  PyObject *__pyx_codeobj__909;
  PyObject *__pyx_codeobj__910;
  PyObject *__pyx_codeobj__911;
  PyObject *__pyx_codeobj__912;
  PyObject *__pyx_codeobj__913;
  PyObject *__pyx_codeobj__914;
  PyObject *__pyx_codeobj__915;
  PyObject *__pyx_codeobj__916;
  PyObject *__pyx_codeobj__917;
  PyObject *__pyx_codeobj__918;
  PyObject *__pyx_codeobj__919;
  PyObject *__pyx_codeobj__920;
  PyObject *__pyx_codeobj__921;
  PyObject *__pyx_codeobj__922;
  PyObject *__pyx_codeobj__923;
  PyObject *__pyx_codeobj__924;
  PyObject *__pyx_codeobj__925;
  PyObject *__pyx_codeobj__926;
  PyObject *__pyx_codeobj__927;
  PyObject *__pyx_codeobj__928;
  PyObject *__pyx_codeobj__929;
  PyObject *__pyx_codeobj__930;
  PyObject *__pyx_codeobj__931;
  PyObject *__pyx_codeobj__932;
  PyObject *__pyx_codeobj__933;
  PyObject *__pyx_codeobj__934;
} __pyx_mstate;

#if CYTHON_USE_MODULE_STATE
#ifdef __cplusplus
namespace {
  extern struct PyModuleDef __pyx_moduledef;
} /* anonymous namespace */
#else
static struct PyModuleDef __pyx_moduledef;
#endif

#define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))

#define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))

#define __pyx_m (PyState_FindModule(&__pyx_moduledef))
#else
static __pyx_mstate __pyx_mstate_global_static =
#ifdef __cplusplus
    {};
#else
    {0};
#endif
static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
#endif
/* #### Code section: module_state_clear ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_clear(PyObject *m) {
  __pyx_mstate *clear_module_state = __pyx_mstate(m);
  if (!clear_module_state) return 0;
  Py_CLEAR(clear_module_state->__pyx_d);
  Py_CLEAR(clear_module_state->__pyx_b);
  Py_CLEAR(clear_module_state->__pyx_cython_runtime);
  Py_CLEAR(clear_module_state->__pyx_empty_tuple);
  Py_CLEAR(clear_module_state->__pyx_empty_bytes);
  Py_CLEAR(clear_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
  #endif
  Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
  Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_3clm_mus_any);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_CLMGenerator);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_CLMGenerator);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nxysin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nxysin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nxycos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nxycos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Noddcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Noddcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Noddssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Noddssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Ncos2);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Ncos2);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Ncos4);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Ncos4);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Npcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Npcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Ncos5);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Ncos5);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nsin5);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nsin5);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nrcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nrcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nrssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nrssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nkssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nkssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nsincos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nsincos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_N1cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_N1cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Npos1cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Npos1cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Npos3cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Npos3cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rxysin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rxysin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rxycos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rxycos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_SafeRxycos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_SafeRxycos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Ercos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Ercos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Erssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Erssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_R2cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_R2cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_R2ssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_R2ssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Eoddcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Eoddcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rkcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rkcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rksin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rksin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rkssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rkssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rkfcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rkfcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rkfssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rkfssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_R2kfcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_R2kfcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_K2sin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_K2sin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_K2cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_K2cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_K2ssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_K2ssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Dblsum);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Dblsum);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Krksin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Krksin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Absin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Absin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Abcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Abcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_R2k2cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_R2k2cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Blsaw);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Blsaw);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Asyfm);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Asyfm);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Bess);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Bess);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Jjcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Jjcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_J0evencos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_J0evencos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_J2cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_J2cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Jpcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Jpcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Jncos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Jncos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_J0j1cos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_J0j1cos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Jycos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Jycos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Jcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Jcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Blackman);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Blackman);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Fmssb);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Fmssb);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_K3sin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_K3sin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Izcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Izcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_AdjustableSquareWave);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_AdjustableTriangleWave);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableOscil);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_AdjustableOscil);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_RoundInterp);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_RoundInterp);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_SincTrain);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_SincTrain);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_PinkNoise);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_PinkNoise);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_BrownNoise);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_BrownNoise);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_GreenNoise);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_GreenNoise);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_GreenNoiseInterp);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_MovingSum);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_MovingSum);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_MovingVariance);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_MovingVariance);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_MovingRMS);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_MovingRMS);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_MovingLength);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_MovingLength);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_WeightedMovingAverage);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Tanhsin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Tanhsin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_Noddsin);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_Noddsin);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators_MovingFFT);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators_MovingFFT);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max);
  Py_CLEAR(clear_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env);
  Py_CLEAR(clear_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env);
  Py_CLEAR(clear_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y);
  Py_CLEAR(clear_module_state->__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y);
  Py_CLEAR(clear_module_state->__pyx_kp_u_);
  Py_CLEAR(clear_module_state->__pyx_n_s_Abcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Abcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Abcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Abcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Absin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Absin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Absin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Absin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableOscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableOscil___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableOscil___setstate_cytho);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableOscil_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSawtoothWave);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSawtoothWave___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSawtoothWave___setstat);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSawtoothWave_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSquareWave);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSquareWave___reduce_cy);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSquareWave___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableSquareWave_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableTriangleWave);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableTriangleWave___reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableTriangleWave___setstat);
  Py_CLEAR(clear_module_state->__pyx_n_s_AdjustableTriangleWave_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm_next_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_Asyfm_next_j);
  Py_CLEAR(clear_module_state->__pyx_n_s_BOTH_KINDS);
  Py_CLEAR(clear_module_state->__pyx_n_s_Bess);
  Py_CLEAR(clear_module_state->__pyx_n_s_Bess___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Bess___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Bess_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blackman);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blackman___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blackman___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blackman_mus_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blackman_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blsaw);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blsaw___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blsaw___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Blsaw_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_BrownNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_BrownNoise___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_BrownNoise___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_BrownNoise_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_CLMGenerator);
  Py_CLEAR(clear_module_state->__pyx_n_s_CLMGenerator___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CLMGenerator___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_CLMGenerator_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Dblsum);
  Py_CLEAR(clear_module_state->__pyx_n_s_Dblsum___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Dblsum___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Dblsum_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_EITHER_KIND);
  Py_CLEAR(clear_module_state->__pyx_n_s_Eoddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Eoddcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Eoddcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Eoddcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ercos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ercos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ercos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ercos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Erssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Erssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Erssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Erssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera);
  Py_CLEAR(clear_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_3);
  Py_CLEAR(clear_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_4);
  Py_CLEAR(clear_module_state->__pyx_n_s_FIRST_KIND);
  Py_CLEAR(clear_module_state->__pyx_n_s_Fmssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Fmssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Fmssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Fmssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoiseInterp);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoiseInterp___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoiseInterp___setstate_cyth);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoiseInterp_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoise___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoise___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_GreenNoise_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_ImportError);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8);
  Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9);
  Py_CLEAR(clear_module_state->__pyx_n_s_Izcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Izcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Izcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Izcos_mus_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_Izcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0evencos);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0evencos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0evencos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0evencos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0j1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0j1cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0j1cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J0j1cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_J2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_J2cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J2cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_J2cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jjcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jjcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jjcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jjcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jncos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jncos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jncos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jncos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jpcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jpcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jpcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jpcos_next);
  Py_CLEAR(clear_module_state->__pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jycos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jycos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Jycos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2sin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2sin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2sin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2ssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2ssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K2ssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_K3sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_K3sin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K3sin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_K3sin_mus_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_K3sin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Krksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Krksin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Krksin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Krksin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingFFT);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingFFT___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingFFT___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingFFT_mus_run);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingFFT_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingLength);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingLength___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingLength___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingRMS);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingRMS___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingRMS___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingRMS_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingSum);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingSum___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingSum___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingSum_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingVariance);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingVariance___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingVariance___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_MovingVariance_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_N1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_N1cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_N1cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_N1cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nchoosekcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nchoosekcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nchoosekcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos2___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos2___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos2_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos4);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos4___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos4___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos4_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos5);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos5___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos5___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Ncos5_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nkssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nkssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nkssb_call_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nkssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddsin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddsin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddsin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Noddssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos1cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos1cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos1cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos3cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos3cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos3cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Npos3cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrssb_call_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nrssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsin5);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsin5___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsin5___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsin5_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsincos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsincos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsincos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nsincos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1sin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1sin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxy1sin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxycos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxycos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxycos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxysin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxysin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Nxysin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_PickleError);
  Py_CLEAR(clear_module_state->__pyx_n_s_PinkNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_PinkNoise___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PinkNoise___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_PinkNoise_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Polynomial);
  Py_CLEAR(clear_module_state->__pyx_n_s_Pyx_CFunc_double__lParenobject);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2k2cos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2k2cos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2k2cos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2kfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2kfcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2kfcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2kfcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2ssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2ssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_R2ssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfcos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfcos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfcos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkfssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkoddssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkoddssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkoddssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rksin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rksin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rksin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rkssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_RoundInterp);
  Py_CLEAR(clear_module_state->__pyx_n_s_RoundInterp___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RoundInterp___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_RoundInterp_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rssb___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rssb___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rssb_call_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rssb_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxycos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxycos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxycos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxysin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxysin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Rxysin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_SECOND_KIND);
  Py_CLEAR(clear_module_state->__pyx_n_s_SafeRxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_SafeRxycos___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SafeRxycos___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SafeRxycos_clamp_rxycos_r);
  Py_CLEAR(clear_module_state->__pyx_n_s_SafeRxycos_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_SincTrain);
  Py_CLEAR(clear_module_state->__pyx_n_s_SincTrain___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SincTrain___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_SincTrain_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tanhsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tanhsin___reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tanhsin___setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_Tanhsin_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
  Py_CLEAR(clear_module_state->__pyx_n_s_WeightedMovingAverage);
  Py_CLEAR(clear_module_state->__pyx_n_s_WeightedMovingAverage___reduce_c);
  Py_CLEAR(clear_module_state->__pyx_n_s_WeightedMovingAverage___setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_WeightedMovingAverage_next);
  Py_CLEAR(clear_module_state->__pyx_n_s__2);
  Py_CLEAR(clear_module_state->__pyx_n_s__935);
  Py_CLEAR(clear_module_state->__pyx_n_s_a);
  Py_CLEAR(clear_module_state->__pyx_n_s_a2);
  Py_CLEAR(clear_module_state->__pyx_kp_u_a_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_abcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_absin);
  Py_CLEAR(clear_module_state->__pyx_n_s_acos);
  Py_CLEAR(clear_module_state->__pyx_n_s_adjustable_oscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_adjustable_sawtooth_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_adjustable_square_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_adjustable_triangle_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_amplitude);
  Py_CLEAR(clear_module_state->__pyx_n_s_angle);
  Py_CLEAR(clear_module_state->__pyx_n_s_arg1);
  Py_CLEAR(clear_module_state->__pyx_n_s_arg2);
  Py_CLEAR(clear_module_state->__pyx_n_s_array);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyfm);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyfm_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyfm_j);
  Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
  Py_CLEAR(clear_module_state->__pyx_n_s_atan2);
  Py_CLEAR(clear_module_state->__pyx_n_s_b);
  Py_CLEAR(clear_module_state->__pyx_n_s_bes_i0);
  Py_CLEAR(clear_module_state->__pyx_n_s_bess);
  Py_CLEAR(clear_module_state->__pyx_n_s_bessel_peaks);
  Py_CLEAR(clear_module_state->__pyx_n_s_blackman);
  Py_CLEAR(clear_module_state->__pyx_n_s_blackman4_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_blackman_coeffs);
  Py_CLEAR(clear_module_state->__pyx_n_s_blsaw);
  Py_CLEAR(clear_module_state->__pyx_n_s_brown_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_call_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_ceil);
  Py_CLEAR(clear_module_state->__pyx_n_s_cfunc_to_py);
  Py_CLEAR(clear_module_state->__pyx_n_s_channels);
  Py_CLEAR(clear_module_state->__pyx_n_s_clamp);
  Py_CLEAR(clear_module_state->__pyx_n_s_clamp_rxycos_r);
  Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem);
  Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
  Py_CLEAR(clear_module_state->__pyx_n_s_clm);
  Py_CLEAR(clear_module_state->__pyx_n_s_copyto);
  Py_CLEAR(clear_module_state->__pyx_n_s_cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_cosh);
  Py_CLEAR(clear_module_state->__pyx_kp_s_cython_double);
  Py_CLEAR(clear_module_state->__pyx_n_s_data);
  Py_CLEAR(clear_module_state->__pyx_n_s_dblsum);
  Py_CLEAR(clear_module_state->__pyx_n_s_default);
  Py_CLEAR(clear_module_state->__pyx_n_s_den);
  Py_CLEAR(clear_module_state->__pyx_n_s_dict);
  Py_CLEAR(clear_module_state->__pyx_n_s_dict_2);
  Py_CLEAR(clear_module_state->__pyx_kp_u_disable);
  Py_CLEAR(clear_module_state->__pyx_n_s_double);
  Py_CLEAR(clear_module_state->__pyx_n_s_dtype);
  Py_CLEAR(clear_module_state->__pyx_n_s_duty_factor);
  Py_CLEAR(clear_module_state->__pyx_n_s_e);
  Py_CLEAR(clear_module_state->__pyx_kp_u_enable);
  Py_CLEAR(clear_module_state->__pyx_kp_u_enum_class_Polynomial_not_import);
  Py_CLEAR(clear_module_state->__pyx_n_s_eoddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_ercos);
  Py_CLEAR(clear_module_state->__pyx_n_s_erssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_exp);
  Py_CLEAR(clear_module_state->__pyx_n_s_exponentially_weighted_moving_av);
  Py_CLEAR(clear_module_state->__pyx_n_s_expts);
  Py_CLEAR(clear_module_state->__pyx_n_s_fabs);
  Py_CLEAR(clear_module_state->__pyx_n_s_fill);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_mid_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nodds_mid_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_noddsin_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_noddsin_max_locals_find_mid);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nsin5_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nsin5_max_locals_find_mid_m);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nsin5_max_locals_ns);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nxysin_max);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nxysin_max_locals_find_mid);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nxysin_max_locals_find_nodd);
  Py_CLEAR(clear_module_state->__pyx_n_s_find_nxysin_max_locals_ns);
  Py_CLEAR(clear_module_state->__pyx_n_s_floor);
  Py_CLEAR(clear_module_state->__pyx_n_s_fm);
  Py_CLEAR(clear_module_state->__pyx_n_s_fmssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_frequency);
  Py_CLEAR(clear_module_state->__pyx_n_s_fun);
  Py_CLEAR(clear_module_state->__pyx_kp_u_gc);
  Py_CLEAR(clear_module_state->__pyx_n_s_gen);
  Py_CLEAR(clear_module_state->__pyx_n_s_getstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_green_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_green_noise_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_hi);
  Py_CLEAR(clear_module_state->__pyx_n_s_high);
  Py_CLEAR(clear_module_state->__pyx_n_s_hop);
  Py_CLEAR(clear_module_state->__pyx_n_s_im);
  Py_CLEAR(clear_module_state->__pyx_n_s_import);
  Py_CLEAR(clear_module_state->__pyx_n_s_index);
  Py_CLEAR(clear_module_state->__pyx_n_s_init);
  Py_CLEAR(clear_module_state->__pyx_n_s_initial_phase);
  Py_CLEAR(clear_module_state->__pyx_n_s_initializing);
  Py_CLEAR(clear_module_state->__pyx_n_s_insig);
  Py_CLEAR(clear_module_state->__pyx_n_s_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_abcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_absin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_adjustable_oscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_adjustable_sawtooth_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_adjustable_square_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_adjustable_triangle_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_asyfm);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_bess);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_blackman);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_blsaw);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_brown_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_dblsum);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_eoddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_ercos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_erssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_exponentially_weighted_moving);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_fmssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_green_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_green_noise_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_izcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_j0evencos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_j0j1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_j2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_jcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_jjcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_jncos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_jpcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_jycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_k2sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_k2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_k3sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_krksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_moving_fft);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_moving_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_moving_rms);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_moving_sum);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_moving_variance);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_n1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_ncos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_ncos4);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_ncos5);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_noddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_noddsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_noddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_npcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_npos1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_npos3cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nrcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nrsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nrssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nsin5);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nsincos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_nxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_pink_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_polyoid);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_r2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_r2k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_r2kfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_r2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rkcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rkfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rkfssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_round_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_rxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_safe_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_sinc_train);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_tanhsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_is_weighted_moving_average);
  Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled);
  Py_CLEAR(clear_module_state->__pyx_n_s_izcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_j0evencos);
  Py_CLEAR(clear_module_state->__pyx_n_s_j0j1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_j2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_jcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_jjcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_jncos);
  Py_CLEAR(clear_module_state->__pyx_n_s_jpcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_jycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_k);
  Py_CLEAR(clear_module_state->__pyx_n_s_k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_k2sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_k2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_k3sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_krksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_last_moving_fft_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_lo);
  Py_CLEAR(clear_module_state->__pyx_n_s_log);
  Py_CLEAR(clear_module_state->__pyx_n_s_low);
  Py_CLEAR(clear_module_state->__pyx_n_s_main);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_abcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_absin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_adjustable_oscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_adjustable_sawtooth_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_adjustable_square_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_adjustable_triangle_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_asyfm);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_bess);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_blackman);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_blsaw);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_brown_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_dblsum);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_eoddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_ercos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_erssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_exponentially_weighted_movi);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_fmssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_green_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_green_noise_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_izcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_j0evencos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_j0j1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_j2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_jcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_jjcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_jncos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_jpcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_jycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_k2sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_k2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_k3sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_krksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_average);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_fft);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_rms);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_sum);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_moving_variance);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_n1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_ncos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_ncos4);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_ncos5);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_noddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_noddsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_noddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_npcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_npos1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_npos3cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nrcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nrsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nrssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nrxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nsin5);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nsincos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_nxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_one_pole);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_oscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_pink_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_polyoid);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_polywave);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_pulse_train);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_r2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_r2k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_r2kfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_r2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rand);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rand_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rkcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rkfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rkfssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_round_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_rxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_safe_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_sinc_train);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_table_lookup);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_table_lookup_with_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_tanhsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_triangle_wave);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_wave_train);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_wave_train_with_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_make_weighted_moving_average);
  Py_CLEAR(clear_module_state->__pyx_n_s_math);
  Py_CLEAR(clear_module_state->__pyx_n_s_mid);
  Py_CLEAR(clear_module_state->__pyx_n_s_moving_fft);
  Py_CLEAR(clear_module_state->__pyx_n_s_moving_length);
  Py_CLEAR(clear_module_state->__pyx_n_s_moving_rms);
  Py_CLEAR(clear_module_state->__pyx_n_s_moving_sum);
  Py_CLEAR(clear_module_state->__pyx_n_s_moving_variance);
  Py_CLEAR(clear_module_state->__pyx_n_s_multi_expt_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_multi_expt_env_locals_fun);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_channel);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_frequency);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_increment);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_phase);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_reset);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_run);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_xcoeffs);
  Py_CLEAR(clear_module_state->__pyx_n_s_mus_ycoeffs);
  Py_CLEAR(clear_module_state->__pyx_kp_u_must_be_r);
  Py_CLEAR(clear_module_state->__pyx_n_s_n);
  Py_CLEAR(clear_module_state->__pyx_n_s_n1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_name);
  Py_CLEAR(clear_module_state->__pyx_n_s_nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_ncos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_ncos4);
  Py_CLEAR(clear_module_state->__pyx_n_s_ncos5);
  Py_CLEAR(clear_module_state->__pyx_n_s_new);
  Py_CLEAR(clear_module_state->__pyx_n_s_next);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_i);
  Py_CLEAR(clear_module_state->__pyx_n_s_next_j);
  Py_CLEAR(clear_module_state->__pyx_n_s_nkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_nkssb_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_noddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nodds);
  Py_CLEAR(clear_module_state->__pyx_n_s_noddsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_noddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_norm);
  Py_CLEAR(clear_module_state->__pyx_n_s_np);
  Py_CLEAR(clear_module_state->__pyx_n_s_npcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_npos1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_npos3cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nrcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nrsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_nrssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_nrssb_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_ns);
  Py_CLEAR(clear_module_state->__pyx_n_s_nsin5);
  Py_CLEAR(clear_module_state->__pyx_n_s_nsincos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_num);
  Py_CLEAR(clear_module_state->__pyx_n_s_numpy);
  Py_CLEAR(clear_module_state->__pyx_kp_u_numpy_core_multiarray_failed_to);
  Py_CLEAR(clear_module_state->__pyx_kp_u_numpy_core_umath_failed_to_impor);
  Py_CLEAR(clear_module_state->__pyx_n_s_nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_nxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_nxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_osc);
  Py_CLEAR(clear_module_state->__pyx_n_s_outctr);
  Py_CLEAR(clear_module_state->__pyx_n_s_partial_amps_and_phases);
  Py_CLEAR(clear_module_state->__pyx_n_s_pi);
  Py_CLEAR(clear_module_state->__pyx_n_s_pickle);
  Py_CLEAR(clear_module_state->__pyx_n_s_pink_noise);
  Py_CLEAR(clear_module_state->__pyx_n_s_polyoid);
  Py_CLEAR(clear_module_state->__pyx_n_s_polyoid_tn);
  Py_CLEAR(clear_module_state->__pyx_n_s_polyoid_un);
  Py_CLEAR(clear_module_state->__pyx_n_s_pow);
  Py_CLEAR(clear_module_state->__pyx_n_s_pulse_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_pysndlib);
  Py_CLEAR(clear_module_state->__pyx_n_s_pysndlib_clm);
  Py_CLEAR(clear_module_state->__pyx_n_s_pysndlib_generators);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Abcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Absin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_AdjustableOscil);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_AdjustableSawtoot);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_AdjustableSquareW);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_AdjustableTriangl);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Asyfm);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Bess);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Blackman);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Blsaw);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_BrownNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_CLMGenerator);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Dblsum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Eoddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Ercos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Erssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_ExponentiallyWeig);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Fmssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_GreenNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_GreenNoiseInterp);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Izcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_J0evencos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_J0j1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_J2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Jcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Jjcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Jncos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Jpcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Jycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_K2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_K2sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_K2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_K3sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Krksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_MovingFFT);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_MovingLength);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_MovingRMS);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_MovingSum);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_MovingVariance);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_N1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nchoosekcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Ncos2);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Ncos4);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Ncos5);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Noddcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Noddsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Noddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Npcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Npos1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Npos3cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nrcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nrssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nsin5);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nsincos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nxy1cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nxy1sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Nxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_PinkNoise);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_R2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_R2k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_R2kfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_R2ssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rkcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rkfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rkfssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_RoundInterp);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Rxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_SafeRxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_SincTrain);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Tanhsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_WeightedMovingAve);
  Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable);
  Py_CLEAR(clear_module_state->__pyx_n_s_r);
  Py_CLEAR(clear_module_state->__pyx_n_s_r2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_r2k2cos);
  Py_CLEAR(clear_module_state->__pyx_n_s_r2kfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_r2ssb);
  Py_CLEAR(clear_module_state->__pyx_kp_u_r_2);
  Py_CLEAR(clear_module_state->__pyx_n_s_random);
  Py_CLEAR(clear_module_state->__pyx_n_s_range);
  Py_CLEAR(clear_module_state->__pyx_n_s_ratio);
  Py_CLEAR(clear_module_state->__pyx_n_s_rcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_reader);
  Py_CLEAR(clear_module_state->__pyx_n_s_real);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
  Py_CLEAR(clear_module_state->__pyx_n_s_rkcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_rkfcos);
  Py_CLEAR(clear_module_state->__pyx_n_s_rkfssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_rkoddssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_rksin);
  Py_CLEAR(clear_module_state->__pyx_n_s_rkssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_rl);
  Py_CLEAR(clear_module_state->__pyx_n_s_rnd);
  Py_CLEAR(clear_module_state->__pyx_n_s_roll);
  Py_CLEAR(clear_module_state->__pyx_n_s_round_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_rssb);
  Py_CLEAR(clear_module_state->__pyx_n_s_rssb_interp);
  Py_CLEAR(clear_module_state->__pyx_n_s_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_rxysin);
  Py_CLEAR(clear_module_state->__pyx_n_s_safe_rxycos);
  Py_CLEAR(clear_module_state->__pyx_n_s_self);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython);
  Py_CLEAR(clear_module_state->__pyx_n_s_sin);
  Py_CLEAR(clear_module_state->__pyx_n_s_sinc_train);
  Py_CLEAR(clear_module_state->__pyx_n_s_sine_env);
  Py_CLEAR(clear_module_state->__pyx_n_s_sinh);
  Py_CLEAR(clear_module_state->__pyx_n_s_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_spec);
  Py_CLEAR(clear_module_state->__pyx_n_s_sqrt);
  Py_CLEAR(clear_module_state->__pyx_n_s_square_env);
  Py_CLEAR(clear_module_state->__pyx_kp_s_src_pysndlib_generators_pyx);
  Py_CLEAR(clear_module_state->__pyx_n_s_state);
  Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource);
  Py_CLEAR(clear_module_state->__pyx_n_s_super);
  Py_CLEAR(clear_module_state->__pyx_n_s_table_size);
  Py_CLEAR(clear_module_state->__pyx_n_s_tan);
  Py_CLEAR(clear_module_state->__pyx_n_s_tanh);
  Py_CLEAR(clear_module_state->__pyx_n_s_tanhsin);
  Py_CLEAR(clear_module_state->__pyx_n_s_test);
  Py_CLEAR(clear_module_state->__pyx_n_s_update);
  Py_CLEAR(clear_module_state->__pyx_n_s_use_setstate);
  Py_CLEAR(clear_module_state->__pyx_n_s_warn);
  Py_CLEAR(clear_module_state->__pyx_n_s_warnings);
  Py_CLEAR(clear_module_state->__pyx_n_s_weighted_moving_average);
  Py_CLEAR(clear_module_state->__pyx_kp_u_will_cause_bes_y0_to_return_inf);
  Py_CLEAR(clear_module_state->__pyx_n_s_window);
  Py_CLEAR(clear_module_state->__pyx_n_s_wrap);
  Py_CLEAR(clear_module_state->__pyx_n_s_x);
  Py_CLEAR(clear_module_state->__pyx_n_s_xcoeffs);
  Py_CLEAR(clear_module_state->__pyx_n_s_y);
  Py_CLEAR(clear_module_state->__pyx_n_s_ycoeffs);
  Py_CLEAR(clear_module_state->__pyx_n_s_yhi);
  Py_CLEAR(clear_module_state->__pyx_n_s_ylo);
  Py_CLEAR(clear_module_state->__pyx_n_s_zeros);
  Py_CLEAR(clear_module_state->__pyx_float__0);
  Py_CLEAR(clear_module_state->__pyx_float__5);
  Py_CLEAR(clear_module_state->__pyx_float_0_);
  Py_CLEAR(clear_module_state->__pyx_float_1_);
  Py_CLEAR(clear_module_state->__pyx_float_3_);
  Py_CLEAR(clear_module_state->__pyx_float__25);
  Py_CLEAR(clear_module_state->__pyx_float__54);
  Py_CLEAR(clear_module_state->__pyx_float_0_0);
  Py_CLEAR(clear_module_state->__pyx_float_0_5);
  Py_CLEAR(clear_module_state->__pyx_float_1_0);
  Py_CLEAR(clear_module_state->__pyx_float_2_0);
  Py_CLEAR(clear_module_state->__pyx_float_2_5);
  Py_CLEAR(clear_module_state->__pyx_float_3_0);
  Py_CLEAR(clear_module_state->__pyx_float_4_0);
  Py_CLEAR(clear_module_state->__pyx_float_5_0);
  Py_CLEAR(clear_module_state->__pyx_float__001);
  Py_CLEAR(clear_module_state->__pyx_float_0_54);
  Py_CLEAR(clear_module_state->__pyx_float_1eneg_9);
  Py_CLEAR(clear_module_state->__pyx_float_0_248);
  Py_CLEAR(clear_module_state->__pyx_float_0_252);
  Py_CLEAR(clear_module_state->__pyx_float_0_257);
  Py_CLEAR(clear_module_state->__pyx_float_0_262);
  Py_CLEAR(clear_module_state->__pyx_float_0_267);
  Py_CLEAR(clear_module_state->__pyx_float_0_273);
  Py_CLEAR(clear_module_state->__pyx_float_0_279);
  Py_CLEAR(clear_module_state->__pyx_float_0_286);
  Py_CLEAR(clear_module_state->__pyx_float_0_294);
  Py_CLEAR(clear_module_state->__pyx_float_0_303);
  Py_CLEAR(clear_module_state->__pyx_float_0_313);
  Py_CLEAR(clear_module_state->__pyx_float_0_325);
  Py_CLEAR(clear_module_state->__pyx_float_0_338);
  Py_CLEAR(clear_module_state->__pyx_float_0_355);
  Py_CLEAR(clear_module_state->__pyx_float_0_375);
  Py_CLEAR(clear_module_state->__pyx_float_0_400);
  Py_CLEAR(clear_module_state->__pyx_float_0_435);
  Py_CLEAR(clear_module_state->__pyx_float_0_487);
  Py_CLEAR(clear_module_state->__pyx_float_0_582);
  Py_CLEAR(clear_module_state->__pyx_float_1_000);
  Py_CLEAR(clear_module_state->__pyx_float__00001);
  Py_CLEAR(clear_module_state->__pyx_float__08333);
  Py_CLEAR(clear_module_state->__pyx_float__99999);
  Py_CLEAR(clear_module_state->__pyx_float_1_0eneg_6);
  Py_CLEAR(clear_module_state->__pyx_float_1_0eneg_9);
  Py_CLEAR(clear_module_state->__pyx_float__201416);
  Py_CLEAR(clear_module_state->__pyx_float__293557);
  Py_CLEAR(clear_module_state->__pyx_float__999999);
  Py_CLEAR(clear_module_state->__pyx_float_0_14128);
  Py_CLEAR(clear_module_state->__pyx_float_0_20762);
  Py_CLEAR(clear_module_state->__pyx_float_0_20844);
  Py_CLEAR(clear_module_state->__pyx_float_0_29145);
  Py_CLEAR(clear_module_state->__pyx_float_0_35875);
  Py_CLEAR(clear_module_state->__pyx_float_0_42323);
  Py_CLEAR(clear_module_state->__pyx_float_0_48829);
  Py_CLEAR(clear_module_state->__pyx_float__2151527);
  Py_CLEAR(clear_module_state->__pyx_float__2180041);
  Py_CLEAR(clear_module_state->__pyx_float__2257345);
  Py_CLEAR(clear_module_state->__pyx_float__2288396);
  Py_CLEAR(clear_module_state->__pyx_float__2358242);
  Py_CLEAR(clear_module_state->__pyx_float__2384331);
  Py_CLEAR(clear_module_state->__pyx_float__2401294);
  Py_CLEAR(clear_module_state->__pyx_float__2424243);
  Py_CLEAR(clear_module_state->__pyx_float__2533176);
  Py_CLEAR(clear_module_state->__pyx_float__2712203);
  Py_CLEAR(clear_module_state->__pyx_float__9999999);
  Py_CLEAR(clear_module_state->__pyx_float_0_005149);
  Py_CLEAR(clear_module_state->__pyx_float_0_041194);
  Py_CLEAR(clear_module_state->__pyx_float_0_078279);
  Py_CLEAR(clear_module_state->__pyx_float_0_084037);
  Py_CLEAR(clear_module_state->__pyx_float_0_287333);
  Py_CLEAR(clear_module_state->__pyx_float_0_375696);
  Py_CLEAR(clear_module_state->__pyx_float__00502619);
  Py_CLEAR(clear_module_state->__pyx_float__03325916);
  Py_CLEAR(clear_module_state->__pyx_float__04077422);
  Py_CLEAR(clear_module_state->__pyx_float__010761867);
  Py_CLEAR(clear_module_state->__pyx_float__017735924);
  Py_CLEAR(clear_module_state->__pyx_float__025373955);
  Py_CLEAR(clear_module_state->__pyx_float__0008751673);
  Py_CLEAR(clear_module_state->__pyx_float__0016398069);
  Py_CLEAR(clear_module_state->__pyx_float__00001368088);
  Py_CLEAR(clear_module_state->__pyx_float__00010677413);
  Py_CLEAR(clear_module_state->__pyx_float__00036856041);
  Py_CLEAR(clear_module_state->__pyx_float__000001710716);
  Py_CLEAR(clear_module_state->__pyx_float__000008884663);
  Py_CLEAR(clear_module_state->__pyx_float__0000001161808);
  Py_CLEAR(clear_module_state->__pyx_float__00000000084824);
  Py_CLEAR(clear_module_state->__pyx_float_neg_1_);
  Py_CLEAR(clear_module_state->__pyx_float_neg_0_46);
  Py_CLEAR(clear_module_state->__pyx_float_neg__99999);
  Py_CLEAR(clear_module_state->__pyx_float_neg__047926);
  Py_CLEAR(clear_module_state->__pyx_float_neg__451935);
  Py_CLEAR(clear_module_state->__pyx_float_neg__999999);
  Py_CLEAR(clear_module_state->__pyx_float_neg_0_01168);
  Py_CLEAR(clear_module_state->__pyx_float_neg_0_05190);
  Py_CLEAR(clear_module_state->__pyx_float_neg_0_44716);
  Py_CLEAR(clear_module_state->__pyx_float_neg_0_49755);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0657853);
  Py_CLEAR(clear_module_state->__pyx_float_neg__1070542);
  Py_CLEAR(clear_module_state->__pyx_float_neg__1166907);
  Py_CLEAR(clear_module_state->__pyx_float_neg__3731348);
  Py_CLEAR(clear_module_state->__pyx_float_neg__3860122);
  Py_CLEAR(clear_module_state->__pyx_float_neg__4005545);
  Py_CLEAR(clear_module_state->__pyx_float_neg__4163269);
  Py_CLEAR(clear_module_state->__pyx_float_neg__4334446);
  Py_CLEAR(clear_module_state->__pyx_float_neg__00687337);
  Py_CLEAR(clear_module_state->__pyx_float_neg__01000904);
  Py_CLEAR(clear_module_state->__pyx_float_neg__08157508);
  Py_CLEAR(clear_module_state->__pyx_float_neg__09527918);
  Py_CLEAR(clear_module_state->__pyx_float_neg__000137555);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0000012807);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0000600859);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0001651660);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0007700127);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0020967027);
  Py_CLEAR(clear_module_state->__pyx_float_neg__0041524329);
  Py_CLEAR(clear_module_state->__pyx_float_neg__00001384355);
  Py_CLEAR(clear_module_state->__pyx_float_neg__000000193817);
  Py_CLEAR(clear_module_state->__pyx_float_neg__00000001027272);
  Py_CLEAR(clear_module_state->__pyx_int_0);
  Py_CLEAR(clear_module_state->__pyx_int_1);
  Py_CLEAR(clear_module_state->__pyx_int_2);
  Py_CLEAR(clear_module_state->__pyx_int_3);
  Py_CLEAR(clear_module_state->__pyx_int_4);
  Py_CLEAR(clear_module_state->__pyx_int_5);
  Py_CLEAR(clear_module_state->__pyx_int_6);
  Py_CLEAR(clear_module_state->__pyx_int_7);
  Py_CLEAR(clear_module_state->__pyx_int_8);
  Py_CLEAR(clear_module_state->__pyx_int_9);
  Py_CLEAR(clear_module_state->__pyx_int_10);
  Py_CLEAR(clear_module_state->__pyx_int_100);
  Py_CLEAR(clear_module_state->__pyx_int_128);
  Py_CLEAR(clear_module_state->__pyx_int_512);
  Py_CLEAR(clear_module_state->__pyx_int_4328264);
  Py_CLEAR(clear_module_state->__pyx_int_6431051);
  Py_CLEAR(clear_module_state->__pyx_int_7189371);
  Py_CLEAR(clear_module_state->__pyx_int_8089851);
  Py_CLEAR(clear_module_state->__pyx_int_8455662);
  Py_CLEAR(clear_module_state->__pyx_int_9011761);
  Py_CLEAR(clear_module_state->__pyx_int_9695810);
  Py_CLEAR(clear_module_state->__pyx_int_10165065);
  Py_CLEAR(clear_module_state->__pyx_int_14011399);
  Py_CLEAR(clear_module_state->__pyx_int_14828874);
  Py_CLEAR(clear_module_state->__pyx_int_14975952);
  Py_CLEAR(clear_module_state->__pyx_int_16473016);
  Py_CLEAR(clear_module_state->__pyx_int_17204615);
  Py_CLEAR(clear_module_state->__pyx_int_19846739);
  Py_CLEAR(clear_module_state->__pyx_int_22572774);
  Py_CLEAR(clear_module_state->__pyx_int_24494209);
  Py_CLEAR(clear_module_state->__pyx_int_25414310);
  Py_CLEAR(clear_module_state->__pyx_int_27861694);
  Py_CLEAR(clear_module_state->__pyx_int_28216571);
  Py_CLEAR(clear_module_state->__pyx_int_29168483);
  Py_CLEAR(clear_module_state->__pyx_int_29803235);
  Py_CLEAR(clear_module_state->__pyx_int_33150030);
  Py_CLEAR(clear_module_state->__pyx_int_35482709);
  Py_CLEAR(clear_module_state->__pyx_int_35949077);
  Py_CLEAR(clear_module_state->__pyx_int_36267824);
  Py_CLEAR(clear_module_state->__pyx_int_38153256);
  Py_CLEAR(clear_module_state->__pyx_int_38339493);
  Py_CLEAR(clear_module_state->__pyx_int_39153840);
  Py_CLEAR(clear_module_state->__pyx_int_43452093);
  Py_CLEAR(clear_module_state->__pyx_int_44313570);
  Py_CLEAR(clear_module_state->__pyx_int_48941122);
  Py_CLEAR(clear_module_state->__pyx_int_49475411);
  Py_CLEAR(clear_module_state->__pyx_int_56324287);
  Py_CLEAR(clear_module_state->__pyx_int_56550309);
  Py_CLEAR(clear_module_state->__pyx_int_57753464);
  Py_CLEAR(clear_module_state->__pyx_int_58026155);
  Py_CLEAR(clear_module_state->__pyx_int_60215003);
  Py_CLEAR(clear_module_state->__pyx_int_61524905);
  Py_CLEAR(clear_module_state->__pyx_int_62874594);
  Py_CLEAR(clear_module_state->__pyx_int_64927267);
  Py_CLEAR(clear_module_state->__pyx_int_75984122);
  Py_CLEAR(clear_module_state->__pyx_int_81718022);
  Py_CLEAR(clear_module_state->__pyx_int_82299867);
  Py_CLEAR(clear_module_state->__pyx_int_83731376);
  Py_CLEAR(clear_module_state->__pyx_int_83943461);
  Py_CLEAR(clear_module_state->__pyx_int_89407914);
  Py_CLEAR(clear_module_state->__pyx_int_90560465);
  Py_CLEAR(clear_module_state->__pyx_int_90806753);
  Py_CLEAR(clear_module_state->__pyx_int_93173464);
  Py_CLEAR(clear_module_state->__pyx_int_93234418);
  Py_CLEAR(clear_module_state->__pyx_int_94252077);
  Py_CLEAR(clear_module_state->__pyx_int_95048614);
  Py_CLEAR(clear_module_state->__pyx_int_96942813);
  Py_CLEAR(clear_module_state->__pyx_int_97846830);
  Py_CLEAR(clear_module_state->__pyx_int_99923986);
  Py_CLEAR(clear_module_state->__pyx_int_100967284);
  Py_CLEAR(clear_module_state->__pyx_int_101808146);
  Py_CLEAR(clear_module_state->__pyx_int_103203137);
  Py_CLEAR(clear_module_state->__pyx_int_103886015);
  Py_CLEAR(clear_module_state->__pyx_int_105646596);
  Py_CLEAR(clear_module_state->__pyx_int_105786433);
  Py_CLEAR(clear_module_state->__pyx_int_108802371);
  Py_CLEAR(clear_module_state->__pyx_int_109999513);
  Py_CLEAR(clear_module_state->__pyx_int_114002020);
  Py_CLEAR(clear_module_state->__pyx_int_117047762);
  Py_CLEAR(clear_module_state->__pyx_int_118435233);
  Py_CLEAR(clear_module_state->__pyx_int_120077725);
  Py_CLEAR(clear_module_state->__pyx_int_121268523);
  Py_CLEAR(clear_module_state->__pyx_int_121669262);
  Py_CLEAR(clear_module_state->__pyx_int_123870349);
  Py_CLEAR(clear_module_state->__pyx_int_127044661);
  Py_CLEAR(clear_module_state->__pyx_int_127565017);
  Py_CLEAR(clear_module_state->__pyx_int_131487801);
  Py_CLEAR(clear_module_state->__pyx_int_134697328);
  Py_CLEAR(clear_module_state->__pyx_int_134779209);
  Py_CLEAR(clear_module_state->__pyx_int_135827999);
  Py_CLEAR(clear_module_state->__pyx_int_136014572);
  Py_CLEAR(clear_module_state->__pyx_int_138134742);
  Py_CLEAR(clear_module_state->__pyx_int_139350794);
  Py_CLEAR(clear_module_state->__pyx_int_140324773);
  Py_CLEAR(clear_module_state->__pyx_int_143031090);
  Py_CLEAR(clear_module_state->__pyx_int_144439432);
  Py_CLEAR(clear_module_state->__pyx_int_146847058);
  Py_CLEAR(clear_module_state->__pyx_int_147363750);
  Py_CLEAR(clear_module_state->__pyx_int_148272179);
  Py_CLEAR(clear_module_state->__pyx_int_149852974);
  Py_CLEAR(clear_module_state->__pyx_int_150399202);
  Py_CLEAR(clear_module_state->__pyx_int_150798460);
  Py_CLEAR(clear_module_state->__pyx_int_150816533);
  Py_CLEAR(clear_module_state->__pyx_int_150941660);
  Py_CLEAR(clear_module_state->__pyx_int_152846879);
  Py_CLEAR(clear_module_state->__pyx_int_153277992);
  Py_CLEAR(clear_module_state->__pyx_int_155011743);
  Py_CLEAR(clear_module_state->__pyx_int_158694560);
  Py_CLEAR(clear_module_state->__pyx_int_160277609);
  Py_CLEAR(clear_module_state->__pyx_int_160593119);
  Py_CLEAR(clear_module_state->__pyx_int_165472083);
  Py_CLEAR(clear_module_state->__pyx_int_166068038);
  Py_CLEAR(clear_module_state->__pyx_int_169112353);
  Py_CLEAR(clear_module_state->__pyx_int_170471409);
  Py_CLEAR(clear_module_state->__pyx_int_171232032);
  Py_CLEAR(clear_module_state->__pyx_int_173110512);
  Py_CLEAR(clear_module_state->__pyx_int_174562005);
  Py_CLEAR(clear_module_state->__pyx_int_175203516);
  Py_CLEAR(clear_module_state->__pyx_int_177559970);
  Py_CLEAR(clear_module_state->__pyx_int_178322785);
  Py_CLEAR(clear_module_state->__pyx_int_178981920);
  Py_CLEAR(clear_module_state->__pyx_int_180736322);
  Py_CLEAR(clear_module_state->__pyx_int_184566456);
  Py_CLEAR(clear_module_state->__pyx_int_188214648);
  Py_CLEAR(clear_module_state->__pyx_int_190776647);
  Py_CLEAR(clear_module_state->__pyx_int_191989756);
  Py_CLEAR(clear_module_state->__pyx_int_193049109);
  Py_CLEAR(clear_module_state->__pyx_int_196047615);
  Py_CLEAR(clear_module_state->__pyx_int_199292263);
  Py_CLEAR(clear_module_state->__pyx_int_202207497);
  Py_CLEAR(clear_module_state->__pyx_int_203726100);
  Py_CLEAR(clear_module_state->__pyx_int_208169003);
  Py_CLEAR(clear_module_state->__pyx_int_209685500);
  Py_CLEAR(clear_module_state->__pyx_int_213175882);
  Py_CLEAR(clear_module_state->__pyx_int_217886057);
  Py_CLEAR(clear_module_state->__pyx_int_222419149);
  Py_CLEAR(clear_module_state->__pyx_int_227304315);
  Py_CLEAR(clear_module_state->__pyx_int_228825662);
  Py_CLEAR(clear_module_state->__pyx_int_231905918);
  Py_CLEAR(clear_module_state->__pyx_int_233007199);
  Py_CLEAR(clear_module_state->__pyx_int_234936116);
  Py_CLEAR(clear_module_state->__pyx_int_235111476);
  Py_CLEAR(clear_module_state->__pyx_int_236300599);
  Py_CLEAR(clear_module_state->__pyx_int_237498805);
  Py_CLEAR(clear_module_state->__pyx_int_238530126);
  Py_CLEAR(clear_module_state->__pyx_int_238750788);
  Py_CLEAR(clear_module_state->__pyx_int_241904987);
  Py_CLEAR(clear_module_state->__pyx_int_242608964);
  Py_CLEAR(clear_module_state->__pyx_int_243792574);
  Py_CLEAR(clear_module_state->__pyx_int_244411994);
  Py_CLEAR(clear_module_state->__pyx_int_246568357);
  Py_CLEAR(clear_module_state->__pyx_int_246844032);
  Py_CLEAR(clear_module_state->__pyx_int_254343081);
  Py_CLEAR(clear_module_state->__pyx_int_255285684);
  Py_CLEAR(clear_module_state->__pyx_int_255539553);
  Py_CLEAR(clear_module_state->__pyx_int_258104651);
  Py_CLEAR(clear_module_state->__pyx_int_263069812);
  Py_CLEAR(clear_module_state->__pyx_int_263863157);
  Py_CLEAR(clear_module_state->__pyx_int_266373226);
  Py_CLEAR(clear_module_state->__pyx_int_266943092);
  Py_CLEAR(clear_module_state->__pyx_int_267403128);
  Py_CLEAR(clear_module_state->__pyx_int_neg_1);
  Py_CLEAR(clear_module_state->__pyx_k__18);
  Py_CLEAR(clear_module_state->__pyx_k__19);
  Py_CLEAR(clear_module_state->__pyx_k__22);
  Py_CLEAR(clear_module_state->__pyx_k__23);
  Py_CLEAR(clear_module_state->__pyx_tuple__3);
  Py_CLEAR(clear_module_state->__pyx_tuple__5);
  Py_CLEAR(clear_module_state->__pyx_tuple__6);
  Py_CLEAR(clear_module_state->__pyx_tuple__7);
  Py_CLEAR(clear_module_state->__pyx_tuple__9);
  Py_CLEAR(clear_module_state->__pyx_tuple__13);
  Py_CLEAR(clear_module_state->__pyx_tuple__14);
  Py_CLEAR(clear_module_state->__pyx_tuple__17);
  Py_CLEAR(clear_module_state->__pyx_tuple__20);
  Py_CLEAR(clear_module_state->__pyx_tuple__24);
  Py_CLEAR(clear_module_state->__pyx_tuple__25);
  Py_CLEAR(clear_module_state->__pyx_tuple__26);
  Py_CLEAR(clear_module_state->__pyx_tuple__27);
  Py_CLEAR(clear_module_state->__pyx_tuple__28);
  Py_CLEAR(clear_module_state->__pyx_tuple__29);
  Py_CLEAR(clear_module_state->__pyx_tuple__30);
  Py_CLEAR(clear_module_state->__pyx_tuple__31);
  Py_CLEAR(clear_module_state->__pyx_tuple__32);
  Py_CLEAR(clear_module_state->__pyx_tuple__33);
  Py_CLEAR(clear_module_state->__pyx_tuple__34);
  Py_CLEAR(clear_module_state->__pyx_tuple__35);
  Py_CLEAR(clear_module_state->__pyx_tuple__36);
  Py_CLEAR(clear_module_state->__pyx_tuple__37);
  Py_CLEAR(clear_module_state->__pyx_tuple__38);
  Py_CLEAR(clear_module_state->__pyx_tuple__39);
  Py_CLEAR(clear_module_state->__pyx_tuple__40);
  Py_CLEAR(clear_module_state->__pyx_tuple__41);
  Py_CLEAR(clear_module_state->__pyx_tuple__42);
  Py_CLEAR(clear_module_state->__pyx_tuple__43);
  Py_CLEAR(clear_module_state->__pyx_tuple__44);
  Py_CLEAR(clear_module_state->__pyx_tuple__45);
  Py_CLEAR(clear_module_state->__pyx_tuple__46);
  Py_CLEAR(clear_module_state->__pyx_tuple__47);
  Py_CLEAR(clear_module_state->__pyx_tuple__48);
  Py_CLEAR(clear_module_state->__pyx_tuple__49);
  Py_CLEAR(clear_module_state->__pyx_tuple__50);
  Py_CLEAR(clear_module_state->__pyx_tuple__51);
  Py_CLEAR(clear_module_state->__pyx_tuple__52);
  Py_CLEAR(clear_module_state->__pyx_tuple__53);
  Py_CLEAR(clear_module_state->__pyx_tuple__54);
  Py_CLEAR(clear_module_state->__pyx_tuple__55);
  Py_CLEAR(clear_module_state->__pyx_tuple__56);
  Py_CLEAR(clear_module_state->__pyx_tuple__57);
  Py_CLEAR(clear_module_state->__pyx_tuple__58);
  Py_CLEAR(clear_module_state->__pyx_tuple__59);
  Py_CLEAR(clear_module_state->__pyx_tuple__60);
  Py_CLEAR(clear_module_state->__pyx_tuple__61);
  Py_CLEAR(clear_module_state->__pyx_tuple__62);
  Py_CLEAR(clear_module_state->__pyx_tuple__63);
  Py_CLEAR(clear_module_state->__pyx_tuple__64);
  Py_CLEAR(clear_module_state->__pyx_tuple__65);
  Py_CLEAR(clear_module_state->__pyx_tuple__66);
  Py_CLEAR(clear_module_state->__pyx_tuple__67);
  Py_CLEAR(clear_module_state->__pyx_tuple__68);
  Py_CLEAR(clear_module_state->__pyx_tuple__69);
  Py_CLEAR(clear_module_state->__pyx_tuple__70);
  Py_CLEAR(clear_module_state->__pyx_tuple__71);
  Py_CLEAR(clear_module_state->__pyx_tuple__72);
  Py_CLEAR(clear_module_state->__pyx_tuple__73);
  Py_CLEAR(clear_module_state->__pyx_tuple__74);
  Py_CLEAR(clear_module_state->__pyx_tuple__76);
  Py_CLEAR(clear_module_state->__pyx_tuple__77);
  Py_CLEAR(clear_module_state->__pyx_tuple__79);
  Py_CLEAR(clear_module_state->__pyx_tuple__82);
  Py_CLEAR(clear_module_state->__pyx_tuple__85);
  Py_CLEAR(clear_module_state->__pyx_tuple__87);
  Py_CLEAR(clear_module_state->__pyx_tuple__88);
  Py_CLEAR(clear_module_state->__pyx_tuple__90);
  Py_CLEAR(clear_module_state->__pyx_tuple__91);
  Py_CLEAR(clear_module_state->__pyx_tuple__93);
  Py_CLEAR(clear_module_state->__pyx_tuple__95);
  Py_CLEAR(clear_module_state->__pyx_tuple__98);
  Py_CLEAR(clear_module_state->__pyx_codeobj__4);
  Py_CLEAR(clear_module_state->__pyx_codeobj__8);
  Py_CLEAR(clear_module_state->__pyx_tuple__102);
  Py_CLEAR(clear_module_state->__pyx_tuple__104);
  Py_CLEAR(clear_module_state->__pyx_tuple__107);
  Py_CLEAR(clear_module_state->__pyx_tuple__111);
  Py_CLEAR(clear_module_state->__pyx_tuple__113);
  Py_CLEAR(clear_module_state->__pyx_tuple__116);
  Py_CLEAR(clear_module_state->__pyx_tuple__120);
  Py_CLEAR(clear_module_state->__pyx_tuple__122);
  Py_CLEAR(clear_module_state->__pyx_tuple__125);
  Py_CLEAR(clear_module_state->__pyx_tuple__129);
  Py_CLEAR(clear_module_state->__pyx_tuple__131);
  Py_CLEAR(clear_module_state->__pyx_tuple__133);
  Py_CLEAR(clear_module_state->__pyx_tuple__136);
  Py_CLEAR(clear_module_state->__pyx_tuple__140);
  Py_CLEAR(clear_module_state->__pyx_tuple__142);
  Py_CLEAR(clear_module_state->__pyx_tuple__145);
  Py_CLEAR(clear_module_state->__pyx_tuple__149);
  Py_CLEAR(clear_module_state->__pyx_tuple__151);
  Py_CLEAR(clear_module_state->__pyx_tuple__154);
  Py_CLEAR(clear_module_state->__pyx_tuple__158);
  Py_CLEAR(clear_module_state->__pyx_tuple__160);
  Py_CLEAR(clear_module_state->__pyx_tuple__163);
  Py_CLEAR(clear_module_state->__pyx_tuple__166);
  Py_CLEAR(clear_module_state->__pyx_tuple__168);
  Py_CLEAR(clear_module_state->__pyx_tuple__170);
  Py_CLEAR(clear_module_state->__pyx_tuple__173);
  Py_CLEAR(clear_module_state->__pyx_tuple__178);
  Py_CLEAR(clear_module_state->__pyx_tuple__181);
  Py_CLEAR(clear_module_state->__pyx_tuple__186);
  Py_CLEAR(clear_module_state->__pyx_tuple__189);
  Py_CLEAR(clear_module_state->__pyx_tuple__194);
  Py_CLEAR(clear_module_state->__pyx_tuple__196);
  Py_CLEAR(clear_module_state->__pyx_tuple__199);
  Py_CLEAR(clear_module_state->__pyx_tuple__204);
  Py_CLEAR(clear_module_state->__pyx_tuple__206);
  Py_CLEAR(clear_module_state->__pyx_tuple__208);
  Py_CLEAR(clear_module_state->__pyx_tuple__210);
  Py_CLEAR(clear_module_state->__pyx_tuple__213);
  Py_CLEAR(clear_module_state->__pyx_tuple__217);
  Py_CLEAR(clear_module_state->__pyx_tuple__219);
  Py_CLEAR(clear_module_state->__pyx_tuple__222);
  Py_CLEAR(clear_module_state->__pyx_tuple__223);
  Py_CLEAR(clear_module_state->__pyx_tuple__225);
  Py_CLEAR(clear_module_state->__pyx_tuple__228);
  Py_CLEAR(clear_module_state->__pyx_tuple__230);
  Py_CLEAR(clear_module_state->__pyx_tuple__232);
  Py_CLEAR(clear_module_state->__pyx_tuple__233);
  Py_CLEAR(clear_module_state->__pyx_tuple__235);
  Py_CLEAR(clear_module_state->__pyx_tuple__238);
  Py_CLEAR(clear_module_state->__pyx_tuple__240);
  Py_CLEAR(clear_module_state->__pyx_tuple__244);
  Py_CLEAR(clear_module_state->__pyx_tuple__246);
  Py_CLEAR(clear_module_state->__pyx_tuple__248);
  Py_CLEAR(clear_module_state->__pyx_tuple__251);
  Py_CLEAR(clear_module_state->__pyx_tuple__256);
  Py_CLEAR(clear_module_state->__pyx_tuple__259);
  Py_CLEAR(clear_module_state->__pyx_tuple__264);
  Py_CLEAR(clear_module_state->__pyx_tuple__267);
  Py_CLEAR(clear_module_state->__pyx_tuple__272);
  Py_CLEAR(clear_module_state->__pyx_tuple__275);
  Py_CLEAR(clear_module_state->__pyx_tuple__280);
  Py_CLEAR(clear_module_state->__pyx_tuple__283);
  Py_CLEAR(clear_module_state->__pyx_tuple__286);
  Py_CLEAR(clear_module_state->__pyx_tuple__289);
  Py_CLEAR(clear_module_state->__pyx_tuple__292);
  Py_CLEAR(clear_module_state->__pyx_tuple__294);
  Py_CLEAR(clear_module_state->__pyx_tuple__297);
  Py_CLEAR(clear_module_state->__pyx_tuple__299);
  Py_CLEAR(clear_module_state->__pyx_tuple__301);
  Py_CLEAR(clear_module_state->__pyx_tuple__303);
  Py_CLEAR(clear_module_state->__pyx_tuple__306);
  Py_CLEAR(clear_module_state->__pyx_tuple__310);
  Py_CLEAR(clear_module_state->__pyx_tuple__312);
  Py_CLEAR(clear_module_state->__pyx_tuple__315);
  Py_CLEAR(clear_module_state->__pyx_tuple__319);
  Py_CLEAR(clear_module_state->__pyx_tuple__321);
  Py_CLEAR(clear_module_state->__pyx_tuple__324);
  Py_CLEAR(clear_module_state->__pyx_tuple__326);
  Py_CLEAR(clear_module_state->__pyx_tuple__330);
  Py_CLEAR(clear_module_state->__pyx_tuple__332);
  Py_CLEAR(clear_module_state->__pyx_tuple__335);
  Py_CLEAR(clear_module_state->__pyx_tuple__339);
  Py_CLEAR(clear_module_state->__pyx_tuple__341);
  Py_CLEAR(clear_module_state->__pyx_tuple__344);
  Py_CLEAR(clear_module_state->__pyx_tuple__348);
  Py_CLEAR(clear_module_state->__pyx_tuple__350);
  Py_CLEAR(clear_module_state->__pyx_tuple__353);
  Py_CLEAR(clear_module_state->__pyx_tuple__357);
  Py_CLEAR(clear_module_state->__pyx_tuple__359);
  Py_CLEAR(clear_module_state->__pyx_tuple__362);
  Py_CLEAR(clear_module_state->__pyx_tuple__366);
  Py_CLEAR(clear_module_state->__pyx_tuple__368);
  Py_CLEAR(clear_module_state->__pyx_tuple__371);
  Py_CLEAR(clear_module_state->__pyx_tuple__375);
  Py_CLEAR(clear_module_state->__pyx_tuple__377);
  Py_CLEAR(clear_module_state->__pyx_tuple__380);
  Py_CLEAR(clear_module_state->__pyx_tuple__384);
  Py_CLEAR(clear_module_state->__pyx_tuple__386);
  Py_CLEAR(clear_module_state->__pyx_tuple__389);
  Py_CLEAR(clear_module_state->__pyx_tuple__393);
  Py_CLEAR(clear_module_state->__pyx_tuple__395);
  Py_CLEAR(clear_module_state->__pyx_tuple__398);
  Py_CLEAR(clear_module_state->__pyx_tuple__402);
  Py_CLEAR(clear_module_state->__pyx_tuple__404);
  Py_CLEAR(clear_module_state->__pyx_tuple__407);
  Py_CLEAR(clear_module_state->__pyx_tuple__411);
  Py_CLEAR(clear_module_state->__pyx_tuple__413);
  Py_CLEAR(clear_module_state->__pyx_tuple__416);
  Py_CLEAR(clear_module_state->__pyx_tuple__420);
  Py_CLEAR(clear_module_state->__pyx_tuple__422);
  Py_CLEAR(clear_module_state->__pyx_tuple__425);
  Py_CLEAR(clear_module_state->__pyx_tuple__428);
  Py_CLEAR(clear_module_state->__pyx_tuple__430);
  Py_CLEAR(clear_module_state->__pyx_tuple__432);
  Py_CLEAR(clear_module_state->__pyx_tuple__435);
  Py_CLEAR(clear_module_state->__pyx_tuple__438);
  Py_CLEAR(clear_module_state->__pyx_tuple__440);
  Py_CLEAR(clear_module_state->__pyx_tuple__442);
  Py_CLEAR(clear_module_state->__pyx_tuple__445);
  Py_CLEAR(clear_module_state->__pyx_tuple__450);
  Py_CLEAR(clear_module_state->__pyx_tuple__453);
  Py_CLEAR(clear_module_state->__pyx_tuple__456);
  Py_CLEAR(clear_module_state->__pyx_tuple__458);
  Py_CLEAR(clear_module_state->__pyx_tuple__460);
  Py_CLEAR(clear_module_state->__pyx_tuple__463);
  Py_CLEAR(clear_module_state->__pyx_tuple__467);
  Py_CLEAR(clear_module_state->__pyx_tuple__469);
  Py_CLEAR(clear_module_state->__pyx_tuple__472);
  Py_CLEAR(clear_module_state->__pyx_tuple__476);
  Py_CLEAR(clear_module_state->__pyx_tuple__478);
  Py_CLEAR(clear_module_state->__pyx_tuple__481);
  Py_CLEAR(clear_module_state->__pyx_tuple__485);
  Py_CLEAR(clear_module_state->__pyx_tuple__487);
  Py_CLEAR(clear_module_state->__pyx_tuple__490);
  Py_CLEAR(clear_module_state->__pyx_tuple__495);
  Py_CLEAR(clear_module_state->__pyx_tuple__498);
  Py_CLEAR(clear_module_state->__pyx_tuple__501);
  Py_CLEAR(clear_module_state->__pyx_tuple__503);
  Py_CLEAR(clear_module_state->__pyx_tuple__505);
  Py_CLEAR(clear_module_state->__pyx_tuple__508);
  Py_CLEAR(clear_module_state->__pyx_tuple__512);
  Py_CLEAR(clear_module_state->__pyx_tuple__514);
  Py_CLEAR(clear_module_state->__pyx_tuple__517);
  Py_CLEAR(clear_module_state->__pyx_tuple__521);
  Py_CLEAR(clear_module_state->__pyx_tuple__523);
  Py_CLEAR(clear_module_state->__pyx_tuple__526);
  Py_CLEAR(clear_module_state->__pyx_tuple__528);
  Py_CLEAR(clear_module_state->__pyx_tuple__530);
  Py_CLEAR(clear_module_state->__pyx_tuple__533);
  Py_CLEAR(clear_module_state->__pyx_tuple__535);
  Py_CLEAR(clear_module_state->__pyx_tuple__537);
  Py_CLEAR(clear_module_state->__pyx_tuple__539);
  Py_CLEAR(clear_module_state->__pyx_tuple__541);
  Py_CLEAR(clear_module_state->__pyx_tuple__544);
  Py_CLEAR(clear_module_state->__pyx_tuple__548);
  Py_CLEAR(clear_module_state->__pyx_tuple__550);
  Py_CLEAR(clear_module_state->__pyx_tuple__553);
  Py_CLEAR(clear_module_state->__pyx_tuple__556);
  Py_CLEAR(clear_module_state->__pyx_tuple__558);
  Py_CLEAR(clear_module_state->__pyx_tuple__560);
  Py_CLEAR(clear_module_state->__pyx_tuple__563);
  Py_CLEAR(clear_module_state->__pyx_tuple__566);
  Py_CLEAR(clear_module_state->__pyx_tuple__569);
  Py_CLEAR(clear_module_state->__pyx_tuple__572);
  Py_CLEAR(clear_module_state->__pyx_tuple__575);
  Py_CLEAR(clear_module_state->__pyx_tuple__577);
  Py_CLEAR(clear_module_state->__pyx_tuple__579);
  Py_CLEAR(clear_module_state->__pyx_tuple__582);
  Py_CLEAR(clear_module_state->__pyx_tuple__586);
  Py_CLEAR(clear_module_state->__pyx_tuple__588);
  Py_CLEAR(clear_module_state->__pyx_tuple__591);
  Py_CLEAR(clear_module_state->__pyx_tuple__594);
  Py_CLEAR(clear_module_state->__pyx_tuple__596);
  Py_CLEAR(clear_module_state->__pyx_tuple__598);
  Py_CLEAR(clear_module_state->__pyx_tuple__601);
  Py_CLEAR(clear_module_state->__pyx_tuple__606);
  Py_CLEAR(clear_module_state->__pyx_tuple__609);
  Py_CLEAR(clear_module_state->__pyx_tuple__612);
  Py_CLEAR(clear_module_state->__pyx_tuple__614);
  Py_CLEAR(clear_module_state->__pyx_tuple__616);
  Py_CLEAR(clear_module_state->__pyx_tuple__619);
  Py_CLEAR(clear_module_state->__pyx_tuple__623);
  Py_CLEAR(clear_module_state->__pyx_tuple__625);
  Py_CLEAR(clear_module_state->__pyx_tuple__628);
  Py_CLEAR(clear_module_state->__pyx_tuple__629);
  Py_CLEAR(clear_module_state->__pyx_tuple__635);
  Py_CLEAR(clear_module_state->__pyx_tuple__638);
  Py_CLEAR(clear_module_state->__pyx_tuple__641);
  Py_CLEAR(clear_module_state->__pyx_tuple__643);
  Py_CLEAR(clear_module_state->__pyx_tuple__645);
  Py_CLEAR(clear_module_state->__pyx_tuple__648);
  Py_CLEAR(clear_module_state->__pyx_tuple__654);
  Py_CLEAR(clear_module_state->__pyx_tuple__657);
  Py_CLEAR(clear_module_state->__pyx_tuple__662);
  Py_CLEAR(clear_module_state->__pyx_tuple__664);
  Py_CLEAR(clear_module_state->__pyx_tuple__667);
  Py_CLEAR(clear_module_state->__pyx_tuple__670);
  Py_CLEAR(clear_module_state->__pyx_tuple__672);
  Py_CLEAR(clear_module_state->__pyx_tuple__674);
  Py_CLEAR(clear_module_state->__pyx_tuple__677);
  Py_CLEAR(clear_module_state->__pyx_tuple__681);
  Py_CLEAR(clear_module_state->__pyx_tuple__683);
  Py_CLEAR(clear_module_state->__pyx_tuple__686);
  Py_CLEAR(clear_module_state->__pyx_tuple__690);
  Py_CLEAR(clear_module_state->__pyx_tuple__692);
  Py_CLEAR(clear_module_state->__pyx_tuple__695);
  Py_CLEAR(clear_module_state->__pyx_tuple__698);
  Py_CLEAR(clear_module_state->__pyx_tuple__700);
  Py_CLEAR(clear_module_state->__pyx_tuple__702);
  Py_CLEAR(clear_module_state->__pyx_tuple__704);
  Py_CLEAR(clear_module_state->__pyx_tuple__708);
  Py_CLEAR(clear_module_state->__pyx_tuple__711);
  Py_CLEAR(clear_module_state->__pyx_tuple__713);
  Py_CLEAR(clear_module_state->__pyx_tuple__715);
  Py_CLEAR(clear_module_state->__pyx_tuple__717);
  Py_CLEAR(clear_module_state->__pyx_tuple__721);
  Py_CLEAR(clear_module_state->__pyx_tuple__724);
  Py_CLEAR(clear_module_state->__pyx_tuple__728);
  Py_CLEAR(clear_module_state->__pyx_tuple__730);
  Py_CLEAR(clear_module_state->__pyx_tuple__733);
  Py_CLEAR(clear_module_state->__pyx_tuple__738);
  Py_CLEAR(clear_module_state->__pyx_tuple__741);
  Py_CLEAR(clear_module_state->__pyx_tuple__744);
  Py_CLEAR(clear_module_state->__pyx_tuple__746);
  Py_CLEAR(clear_module_state->__pyx_tuple__748);
  Py_CLEAR(clear_module_state->__pyx_tuple__751);
  Py_CLEAR(clear_module_state->__pyx_tuple__754);
  Py_CLEAR(clear_module_state->__pyx_tuple__756);
  Py_CLEAR(clear_module_state->__pyx_tuple__758);
  Py_CLEAR(clear_module_state->__pyx_tuple__761);
  Py_CLEAR(clear_module_state->__pyx_tuple__764);
  Py_CLEAR(clear_module_state->__pyx_tuple__767);
  Py_CLEAR(clear_module_state->__pyx_tuple__770);
  Py_CLEAR(clear_module_state->__pyx_tuple__775);
  Py_CLEAR(clear_module_state->__pyx_tuple__777);
  Py_CLEAR(clear_module_state->__pyx_tuple__779);
  Py_CLEAR(clear_module_state->__pyx_tuple__783);
  Py_CLEAR(clear_module_state->__pyx_tuple__784);
  Py_CLEAR(clear_module_state->__pyx_tuple__786);
  Py_CLEAR(clear_module_state->__pyx_tuple__789);
  Py_CLEAR(clear_module_state->__pyx_tuple__794);
  Py_CLEAR(clear_module_state->__pyx_tuple__797);
  Py_CLEAR(clear_module_state->__pyx_tuple__802);
  Py_CLEAR(clear_module_state->__pyx_tuple__808);
  Py_CLEAR(clear_module_state->__pyx_tuple__811);
  Py_CLEAR(clear_module_state->__pyx_tuple__816);
  Py_CLEAR(clear_module_state->__pyx_tuple__819);
  Py_CLEAR(clear_module_state->__pyx_tuple__824);
  Py_CLEAR(clear_module_state->__pyx_tuple__826);
  Py_CLEAR(clear_module_state->__pyx_tuple__829);
  Py_CLEAR(clear_module_state->__pyx_tuple__834);
  Py_CLEAR(clear_module_state->__pyx_tuple__838);
  Py_CLEAR(clear_module_state->__pyx_tuple__840);
  Py_CLEAR(clear_module_state->__pyx_tuple__842);
  Py_CLEAR(clear_module_state->__pyx_tuple__844);
  Py_CLEAR(clear_module_state->__pyx_tuple__845);
  Py_CLEAR(clear_module_state->__pyx_tuple__849);
  Py_CLEAR(clear_module_state->__pyx_tuple__851);
  Py_CLEAR(clear_module_state->__pyx_tuple__854);
  Py_CLEAR(clear_module_state->__pyx_codeobj__10);
  Py_CLEAR(clear_module_state->__pyx_codeobj__11);
  Py_CLEAR(clear_module_state->__pyx_codeobj__12);
  Py_CLEAR(clear_module_state->__pyx_codeobj__15);
  Py_CLEAR(clear_module_state->__pyx_codeobj__16);
  Py_CLEAR(clear_module_state->__pyx_codeobj__21);
  Py_CLEAR(clear_module_state->__pyx_codeobj__75);
  Py_CLEAR(clear_module_state->__pyx_codeobj__78);
  Py_CLEAR(clear_module_state->__pyx_codeobj__80);
  Py_CLEAR(clear_module_state->__pyx_codeobj__81);
  Py_CLEAR(clear_module_state->__pyx_codeobj__83);
  Py_CLEAR(clear_module_state->__pyx_codeobj__84);
  Py_CLEAR(clear_module_state->__pyx_codeobj__86);
  Py_CLEAR(clear_module_state->__pyx_codeobj__89);
  Py_CLEAR(clear_module_state->__pyx_codeobj__92);
  Py_CLEAR(clear_module_state->__pyx_codeobj__94);
  Py_CLEAR(clear_module_state->__pyx_codeobj__96);
  Py_CLEAR(clear_module_state->__pyx_codeobj__97);
  Py_CLEAR(clear_module_state->__pyx_codeobj__99);
  Py_CLEAR(clear_module_state->__pyx_codeobj__100);
  Py_CLEAR(clear_module_state->__pyx_codeobj__101);
  Py_CLEAR(clear_module_state->__pyx_codeobj__103);
  Py_CLEAR(clear_module_state->__pyx_codeobj__105);
  Py_CLEAR(clear_module_state->__pyx_codeobj__106);
  Py_CLEAR(clear_module_state->__pyx_codeobj__108);
  Py_CLEAR(clear_module_state->__pyx_codeobj__109);
  Py_CLEAR(clear_module_state->__pyx_codeobj__110);
  Py_CLEAR(clear_module_state->__pyx_codeobj__112);
  Py_CLEAR(clear_module_state->__pyx_codeobj__114);
  Py_CLEAR(clear_module_state->__pyx_codeobj__115);
  Py_CLEAR(clear_module_state->__pyx_codeobj__117);
  Py_CLEAR(clear_module_state->__pyx_codeobj__118);
  Py_CLEAR(clear_module_state->__pyx_codeobj__119);
  Py_CLEAR(clear_module_state->__pyx_codeobj__121);
  Py_CLEAR(clear_module_state->__pyx_codeobj__123);
  Py_CLEAR(clear_module_state->__pyx_codeobj__124);
  Py_CLEAR(clear_module_state->__pyx_codeobj__126);
  Py_CLEAR(clear_module_state->__pyx_codeobj__127);
  Py_CLEAR(clear_module_state->__pyx_codeobj__128);
  Py_CLEAR(clear_module_state->__pyx_codeobj__130);
  Py_CLEAR(clear_module_state->__pyx_codeobj__132);
  Py_CLEAR(clear_module_state->__pyx_codeobj__134);
  Py_CLEAR(clear_module_state->__pyx_codeobj__135);
  Py_CLEAR(clear_module_state->__pyx_codeobj__137);
  Py_CLEAR(clear_module_state->__pyx_codeobj__138);
  Py_CLEAR(clear_module_state->__pyx_codeobj__139);
  Py_CLEAR(clear_module_state->__pyx_codeobj__141);
  Py_CLEAR(clear_module_state->__pyx_codeobj__143);
  Py_CLEAR(clear_module_state->__pyx_codeobj__144);
  Py_CLEAR(clear_module_state->__pyx_codeobj__146);
  Py_CLEAR(clear_module_state->__pyx_codeobj__147);
  Py_CLEAR(clear_module_state->__pyx_codeobj__148);
  Py_CLEAR(clear_module_state->__pyx_codeobj__150);
  Py_CLEAR(clear_module_state->__pyx_codeobj__152);
  Py_CLEAR(clear_module_state->__pyx_codeobj__153);
  Py_CLEAR(clear_module_state->__pyx_codeobj__155);
  Py_CLEAR(clear_module_state->__pyx_codeobj__156);
  Py_CLEAR(clear_module_state->__pyx_codeobj__157);
  Py_CLEAR(clear_module_state->__pyx_codeobj__159);
  Py_CLEAR(clear_module_state->__pyx_codeobj__161);
  Py_CLEAR(clear_module_state->__pyx_codeobj__162);
  Py_CLEAR(clear_module_state->__pyx_codeobj__164);
  Py_CLEAR(clear_module_state->__pyx_codeobj__165);
  Py_CLEAR(clear_module_state->__pyx_codeobj__167);
  Py_CLEAR(clear_module_state->__pyx_codeobj__169);
  Py_CLEAR(clear_module_state->__pyx_codeobj__171);
  Py_CLEAR(clear_module_state->__pyx_codeobj__172);
  Py_CLEAR(clear_module_state->__pyx_codeobj__174);
  Py_CLEAR(clear_module_state->__pyx_codeobj__175);
  Py_CLEAR(clear_module_state->__pyx_codeobj__176);
  Py_CLEAR(clear_module_state->__pyx_codeobj__177);
  Py_CLEAR(clear_module_state->__pyx_codeobj__179);
  Py_CLEAR(clear_module_state->__pyx_codeobj__180);
  Py_CLEAR(clear_module_state->__pyx_codeobj__182);
  Py_CLEAR(clear_module_state->__pyx_codeobj__183);
  Py_CLEAR(clear_module_state->__pyx_codeobj__184);
  Py_CLEAR(clear_module_state->__pyx_codeobj__185);
  Py_CLEAR(clear_module_state->__pyx_codeobj__187);
  Py_CLEAR(clear_module_state->__pyx_codeobj__188);
  Py_CLEAR(clear_module_state->__pyx_codeobj__190);
  Py_CLEAR(clear_module_state->__pyx_codeobj__191);
  Py_CLEAR(clear_module_state->__pyx_codeobj__192);
  Py_CLEAR(clear_module_state->__pyx_codeobj__193);
  Py_CLEAR(clear_module_state->__pyx_codeobj__195);
  Py_CLEAR(clear_module_state->__pyx_codeobj__197);
  Py_CLEAR(clear_module_state->__pyx_codeobj__198);
  Py_CLEAR(clear_module_state->__pyx_codeobj__200);
  Py_CLEAR(clear_module_state->__pyx_codeobj__201);
  Py_CLEAR(clear_module_state->__pyx_codeobj__202);
  Py_CLEAR(clear_module_state->__pyx_codeobj__203);
  Py_CLEAR(clear_module_state->__pyx_codeobj__205);
  Py_CLEAR(clear_module_state->__pyx_codeobj__207);
  Py_CLEAR(clear_module_state->__pyx_codeobj__209);
  Py_CLEAR(clear_module_state->__pyx_codeobj__211);
  Py_CLEAR(clear_module_state->__pyx_codeobj__212);
  Py_CLEAR(clear_module_state->__pyx_codeobj__214);
  Py_CLEAR(clear_module_state->__pyx_codeobj__215);
  Py_CLEAR(clear_module_state->__pyx_codeobj__216);
  Py_CLEAR(clear_module_state->__pyx_codeobj__218);
  Py_CLEAR(clear_module_state->__pyx_codeobj__220);
  Py_CLEAR(clear_module_state->__pyx_codeobj__221);
  Py_CLEAR(clear_module_state->__pyx_codeobj__224);
  Py_CLEAR(clear_module_state->__pyx_codeobj__226);
  Py_CLEAR(clear_module_state->__pyx_codeobj__227);
  Py_CLEAR(clear_module_state->__pyx_codeobj__229);
  Py_CLEAR(clear_module_state->__pyx_codeobj__231);
  Py_CLEAR(clear_module_state->__pyx_codeobj__234);
  Py_CLEAR(clear_module_state->__pyx_codeobj__236);
  Py_CLEAR(clear_module_state->__pyx_codeobj__237);
  Py_CLEAR(clear_module_state->__pyx_codeobj__239);
  Py_CLEAR(clear_module_state->__pyx_codeobj__241);
  Py_CLEAR(clear_module_state->__pyx_codeobj__242);
  Py_CLEAR(clear_module_state->__pyx_codeobj__243);
  Py_CLEAR(clear_module_state->__pyx_codeobj__245);
  Py_CLEAR(clear_module_state->__pyx_codeobj__247);
  Py_CLEAR(clear_module_state->__pyx_codeobj__249);
  Py_CLEAR(clear_module_state->__pyx_codeobj__250);
  Py_CLEAR(clear_module_state->__pyx_codeobj__252);
  Py_CLEAR(clear_module_state->__pyx_codeobj__253);
  Py_CLEAR(clear_module_state->__pyx_codeobj__254);
  Py_CLEAR(clear_module_state->__pyx_codeobj__255);
  Py_CLEAR(clear_module_state->__pyx_codeobj__257);
  Py_CLEAR(clear_module_state->__pyx_codeobj__258);
  Py_CLEAR(clear_module_state->__pyx_codeobj__260);
  Py_CLEAR(clear_module_state->__pyx_codeobj__261);
  Py_CLEAR(clear_module_state->__pyx_codeobj__262);
  Py_CLEAR(clear_module_state->__pyx_codeobj__263);
  Py_CLEAR(clear_module_state->__pyx_codeobj__265);
  Py_CLEAR(clear_module_state->__pyx_codeobj__266);
  Py_CLEAR(clear_module_state->__pyx_codeobj__268);
  Py_CLEAR(clear_module_state->__pyx_codeobj__269);
  Py_CLEAR(clear_module_state->__pyx_codeobj__270);
  Py_CLEAR(clear_module_state->__pyx_codeobj__271);
  Py_CLEAR(clear_module_state->__pyx_codeobj__273);
  Py_CLEAR(clear_module_state->__pyx_codeobj__274);
  Py_CLEAR(clear_module_state->__pyx_codeobj__276);
  Py_CLEAR(clear_module_state->__pyx_codeobj__277);
  Py_CLEAR(clear_module_state->__pyx_codeobj__278);
  Py_CLEAR(clear_module_state->__pyx_codeobj__279);
  Py_CLEAR(clear_module_state->__pyx_codeobj__281);
  Py_CLEAR(clear_module_state->__pyx_codeobj__282);
  Py_CLEAR(clear_module_state->__pyx_codeobj__284);
  Py_CLEAR(clear_module_state->__pyx_codeobj__285);
  Py_CLEAR(clear_module_state->__pyx_codeobj__287);
  Py_CLEAR(clear_module_state->__pyx_codeobj__288);
  Py_CLEAR(clear_module_state->__pyx_codeobj__290);
  Py_CLEAR(clear_module_state->__pyx_codeobj__291);
  Py_CLEAR(clear_module_state->__pyx_codeobj__293);
  Py_CLEAR(clear_module_state->__pyx_codeobj__295);
  Py_CLEAR(clear_module_state->__pyx_codeobj__296);
  Py_CLEAR(clear_module_state->__pyx_codeobj__298);
  Py_CLEAR(clear_module_state->__pyx_codeobj__300);
  Py_CLEAR(clear_module_state->__pyx_codeobj__302);
  Py_CLEAR(clear_module_state->__pyx_codeobj__304);
  Py_CLEAR(clear_module_state->__pyx_codeobj__305);
  Py_CLEAR(clear_module_state->__pyx_codeobj__307);
  Py_CLEAR(clear_module_state->__pyx_codeobj__308);
  Py_CLEAR(clear_module_state->__pyx_codeobj__309);
  Py_CLEAR(clear_module_state->__pyx_codeobj__311);
  Py_CLEAR(clear_module_state->__pyx_codeobj__313);
  Py_CLEAR(clear_module_state->__pyx_codeobj__314);
  Py_CLEAR(clear_module_state->__pyx_codeobj__316);
  Py_CLEAR(clear_module_state->__pyx_codeobj__317);
  Py_CLEAR(clear_module_state->__pyx_codeobj__318);
  Py_CLEAR(clear_module_state->__pyx_codeobj__320);
  Py_CLEAR(clear_module_state->__pyx_codeobj__322);
  Py_CLEAR(clear_module_state->__pyx_codeobj__323);
  Py_CLEAR(clear_module_state->__pyx_codeobj__325);
  Py_CLEAR(clear_module_state->__pyx_codeobj__327);
  Py_CLEAR(clear_module_state->__pyx_codeobj__328);
  Py_CLEAR(clear_module_state->__pyx_codeobj__329);
  Py_CLEAR(clear_module_state->__pyx_codeobj__331);
  Py_CLEAR(clear_module_state->__pyx_codeobj__333);
  Py_CLEAR(clear_module_state->__pyx_codeobj__334);
  Py_CLEAR(clear_module_state->__pyx_codeobj__336);
  Py_CLEAR(clear_module_state->__pyx_codeobj__337);
  Py_CLEAR(clear_module_state->__pyx_codeobj__338);
  Py_CLEAR(clear_module_state->__pyx_codeobj__340);
  Py_CLEAR(clear_module_state->__pyx_codeobj__342);
  Py_CLEAR(clear_module_state->__pyx_codeobj__343);
  Py_CLEAR(clear_module_state->__pyx_codeobj__345);
  Py_CLEAR(clear_module_state->__pyx_codeobj__346);
  Py_CLEAR(clear_module_state->__pyx_codeobj__347);
  Py_CLEAR(clear_module_state->__pyx_codeobj__349);
  Py_CLEAR(clear_module_state->__pyx_codeobj__351);
  Py_CLEAR(clear_module_state->__pyx_codeobj__352);
  Py_CLEAR(clear_module_state->__pyx_codeobj__354);
  Py_CLEAR(clear_module_state->__pyx_codeobj__355);
  Py_CLEAR(clear_module_state->__pyx_codeobj__356);
  Py_CLEAR(clear_module_state->__pyx_codeobj__358);
  Py_CLEAR(clear_module_state->__pyx_codeobj__360);
  Py_CLEAR(clear_module_state->__pyx_codeobj__361);
  Py_CLEAR(clear_module_state->__pyx_codeobj__363);
  Py_CLEAR(clear_module_state->__pyx_codeobj__364);
  Py_CLEAR(clear_module_state->__pyx_codeobj__365);
  Py_CLEAR(clear_module_state->__pyx_codeobj__367);
  Py_CLEAR(clear_module_state->__pyx_codeobj__369);
  Py_CLEAR(clear_module_state->__pyx_codeobj__370);
  Py_CLEAR(clear_module_state->__pyx_codeobj__372);
  Py_CLEAR(clear_module_state->__pyx_codeobj__373);
  Py_CLEAR(clear_module_state->__pyx_codeobj__374);
  Py_CLEAR(clear_module_state->__pyx_codeobj__376);
  Py_CLEAR(clear_module_state->__pyx_codeobj__378);
  Py_CLEAR(clear_module_state->__pyx_codeobj__379);
  Py_CLEAR(clear_module_state->__pyx_codeobj__381);
  Py_CLEAR(clear_module_state->__pyx_codeobj__382);
  Py_CLEAR(clear_module_state->__pyx_codeobj__383);
  Py_CLEAR(clear_module_state->__pyx_codeobj__385);
  Py_CLEAR(clear_module_state->__pyx_codeobj__387);
  Py_CLEAR(clear_module_state->__pyx_codeobj__388);
  Py_CLEAR(clear_module_state->__pyx_codeobj__390);
  Py_CLEAR(clear_module_state->__pyx_codeobj__391);
  Py_CLEAR(clear_module_state->__pyx_codeobj__392);
  Py_CLEAR(clear_module_state->__pyx_codeobj__394);
  Py_CLEAR(clear_module_state->__pyx_codeobj__396);
  Py_CLEAR(clear_module_state->__pyx_codeobj__397);
  Py_CLEAR(clear_module_state->__pyx_codeobj__399);
  Py_CLEAR(clear_module_state->__pyx_codeobj__400);
  Py_CLEAR(clear_module_state->__pyx_codeobj__401);
  Py_CLEAR(clear_module_state->__pyx_codeobj__403);
  Py_CLEAR(clear_module_state->__pyx_codeobj__405);
  Py_CLEAR(clear_module_state->__pyx_codeobj__406);
  Py_CLEAR(clear_module_state->__pyx_codeobj__408);
  Py_CLEAR(clear_module_state->__pyx_codeobj__409);
  Py_CLEAR(clear_module_state->__pyx_codeobj__410);
  Py_CLEAR(clear_module_state->__pyx_codeobj__412);
  Py_CLEAR(clear_module_state->__pyx_codeobj__414);
  Py_CLEAR(clear_module_state->__pyx_codeobj__415);
  Py_CLEAR(clear_module_state->__pyx_codeobj__417);
  Py_CLEAR(clear_module_state->__pyx_codeobj__418);
  Py_CLEAR(clear_module_state->__pyx_codeobj__419);
  Py_CLEAR(clear_module_state->__pyx_codeobj__421);
  Py_CLEAR(clear_module_state->__pyx_codeobj__423);
  Py_CLEAR(clear_module_state->__pyx_codeobj__424);
  Py_CLEAR(clear_module_state->__pyx_codeobj__426);
  Py_CLEAR(clear_module_state->__pyx_codeobj__427);
  Py_CLEAR(clear_module_state->__pyx_codeobj__429);
  Py_CLEAR(clear_module_state->__pyx_codeobj__431);
  Py_CLEAR(clear_module_state->__pyx_codeobj__433);
  Py_CLEAR(clear_module_state->__pyx_codeobj__434);
  Py_CLEAR(clear_module_state->__pyx_codeobj__436);
  Py_CLEAR(clear_module_state->__pyx_codeobj__437);
  Py_CLEAR(clear_module_state->__pyx_codeobj__439);
  Py_CLEAR(clear_module_state->__pyx_codeobj__441);
  Py_CLEAR(clear_module_state->__pyx_codeobj__443);
  Py_CLEAR(clear_module_state->__pyx_codeobj__444);
  Py_CLEAR(clear_module_state->__pyx_codeobj__446);
  Py_CLEAR(clear_module_state->__pyx_codeobj__447);
  Py_CLEAR(clear_module_state->__pyx_codeobj__448);
  Py_CLEAR(clear_module_state->__pyx_codeobj__449);
  Py_CLEAR(clear_module_state->__pyx_codeobj__451);
  Py_CLEAR(clear_module_state->__pyx_codeobj__452);
  Py_CLEAR(clear_module_state->__pyx_codeobj__454);
  Py_CLEAR(clear_module_state->__pyx_codeobj__455);
  Py_CLEAR(clear_module_state->__pyx_codeobj__457);
  Py_CLEAR(clear_module_state->__pyx_codeobj__459);
  Py_CLEAR(clear_module_state->__pyx_codeobj__461);
  Py_CLEAR(clear_module_state->__pyx_codeobj__462);
  Py_CLEAR(clear_module_state->__pyx_codeobj__464);
  Py_CLEAR(clear_module_state->__pyx_codeobj__465);
  Py_CLEAR(clear_module_state->__pyx_codeobj__466);
  Py_CLEAR(clear_module_state->__pyx_codeobj__468);
  Py_CLEAR(clear_module_state->__pyx_codeobj__470);
  Py_CLEAR(clear_module_state->__pyx_codeobj__471);
  Py_CLEAR(clear_module_state->__pyx_codeobj__473);
  Py_CLEAR(clear_module_state->__pyx_codeobj__474);
  Py_CLEAR(clear_module_state->__pyx_codeobj__475);
  Py_CLEAR(clear_module_state->__pyx_codeobj__477);
  Py_CLEAR(clear_module_state->__pyx_codeobj__479);
  Py_CLEAR(clear_module_state->__pyx_codeobj__480);
  Py_CLEAR(clear_module_state->__pyx_codeobj__482);
  Py_CLEAR(clear_module_state->__pyx_codeobj__483);
  Py_CLEAR(clear_module_state->__pyx_codeobj__484);
  Py_CLEAR(clear_module_state->__pyx_codeobj__486);
  Py_CLEAR(clear_module_state->__pyx_codeobj__488);
  Py_CLEAR(clear_module_state->__pyx_codeobj__489);
  Py_CLEAR(clear_module_state->__pyx_codeobj__491);
  Py_CLEAR(clear_module_state->__pyx_codeobj__492);
  Py_CLEAR(clear_module_state->__pyx_codeobj__493);
  Py_CLEAR(clear_module_state->__pyx_codeobj__494);
  Py_CLEAR(clear_module_state->__pyx_codeobj__496);
  Py_CLEAR(clear_module_state->__pyx_codeobj__497);
  Py_CLEAR(clear_module_state->__pyx_codeobj__499);
  Py_CLEAR(clear_module_state->__pyx_codeobj__500);
  Py_CLEAR(clear_module_state->__pyx_codeobj__502);
  Py_CLEAR(clear_module_state->__pyx_codeobj__504);
  Py_CLEAR(clear_module_state->__pyx_codeobj__506);
  Py_CLEAR(clear_module_state->__pyx_codeobj__507);
  Py_CLEAR(clear_module_state->__pyx_codeobj__509);
  Py_CLEAR(clear_module_state->__pyx_codeobj__510);
  Py_CLEAR(clear_module_state->__pyx_codeobj__511);
  Py_CLEAR(clear_module_state->__pyx_codeobj__513);
  Py_CLEAR(clear_module_state->__pyx_codeobj__515);
  Py_CLEAR(clear_module_state->__pyx_codeobj__516);
  Py_CLEAR(clear_module_state->__pyx_codeobj__518);
  Py_CLEAR(clear_module_state->__pyx_codeobj__519);
  Py_CLEAR(clear_module_state->__pyx_codeobj__520);
  Py_CLEAR(clear_module_state->__pyx_codeobj__522);
  Py_CLEAR(clear_module_state->__pyx_codeobj__524);
  Py_CLEAR(clear_module_state->__pyx_codeobj__525);
  Py_CLEAR(clear_module_state->__pyx_codeobj__527);
  Py_CLEAR(clear_module_state->__pyx_codeobj__529);
  Py_CLEAR(clear_module_state->__pyx_codeobj__531);
  Py_CLEAR(clear_module_state->__pyx_codeobj__532);
  Py_CLEAR(clear_module_state->__pyx_codeobj__534);
  Py_CLEAR(clear_module_state->__pyx_codeobj__536);
  Py_CLEAR(clear_module_state->__pyx_codeobj__538);
  Py_CLEAR(clear_module_state->__pyx_codeobj__540);
  Py_CLEAR(clear_module_state->__pyx_codeobj__542);
  Py_CLEAR(clear_module_state->__pyx_codeobj__543);
  Py_CLEAR(clear_module_state->__pyx_codeobj__545);
  Py_CLEAR(clear_module_state->__pyx_codeobj__546);
  Py_CLEAR(clear_module_state->__pyx_codeobj__547);
  Py_CLEAR(clear_module_state->__pyx_codeobj__549);
  Py_CLEAR(clear_module_state->__pyx_codeobj__551);
  Py_CLEAR(clear_module_state->__pyx_codeobj__552);
  Py_CLEAR(clear_module_state->__pyx_codeobj__554);
  Py_CLEAR(clear_module_state->__pyx_codeobj__555);
  Py_CLEAR(clear_module_state->__pyx_codeobj__557);
  Py_CLEAR(clear_module_state->__pyx_codeobj__559);
  Py_CLEAR(clear_module_state->__pyx_codeobj__561);
  Py_CLEAR(clear_module_state->__pyx_codeobj__562);
  Py_CLEAR(clear_module_state->__pyx_codeobj__564);
  Py_CLEAR(clear_module_state->__pyx_codeobj__565);
  Py_CLEAR(clear_module_state->__pyx_codeobj__567);
  Py_CLEAR(clear_module_state->__pyx_codeobj__568);
  Py_CLEAR(clear_module_state->__pyx_codeobj__570);
  Py_CLEAR(clear_module_state->__pyx_codeobj__571);
  Py_CLEAR(clear_module_state->__pyx_codeobj__573);
  Py_CLEAR(clear_module_state->__pyx_codeobj__574);
  Py_CLEAR(clear_module_state->__pyx_codeobj__576);
  Py_CLEAR(clear_module_state->__pyx_codeobj__578);
  Py_CLEAR(clear_module_state->__pyx_codeobj__580);
  Py_CLEAR(clear_module_state->__pyx_codeobj__581);
  Py_CLEAR(clear_module_state->__pyx_codeobj__583);
  Py_CLEAR(clear_module_state->__pyx_codeobj__584);
  Py_CLEAR(clear_module_state->__pyx_codeobj__585);
  Py_CLEAR(clear_module_state->__pyx_codeobj__587);
  Py_CLEAR(clear_module_state->__pyx_codeobj__589);
  Py_CLEAR(clear_module_state->__pyx_codeobj__590);
  Py_CLEAR(clear_module_state->__pyx_codeobj__592);
  Py_CLEAR(clear_module_state->__pyx_codeobj__593);
  Py_CLEAR(clear_module_state->__pyx_codeobj__595);
  Py_CLEAR(clear_module_state->__pyx_codeobj__597);
  Py_CLEAR(clear_module_state->__pyx_codeobj__599);
  Py_CLEAR(clear_module_state->__pyx_codeobj__600);
  Py_CLEAR(clear_module_state->__pyx_codeobj__602);
  Py_CLEAR(clear_module_state->__pyx_codeobj__603);
  Py_CLEAR(clear_module_state->__pyx_codeobj__604);
  Py_CLEAR(clear_module_state->__pyx_codeobj__605);
  Py_CLEAR(clear_module_state->__pyx_codeobj__607);
  Py_CLEAR(clear_module_state->__pyx_codeobj__608);
  Py_CLEAR(clear_module_state->__pyx_codeobj__610);
  Py_CLEAR(clear_module_state->__pyx_codeobj__611);
  Py_CLEAR(clear_module_state->__pyx_codeobj__613);
  Py_CLEAR(clear_module_state->__pyx_codeobj__615);
  Py_CLEAR(clear_module_state->__pyx_codeobj__617);
  Py_CLEAR(clear_module_state->__pyx_codeobj__618);
  Py_CLEAR(clear_module_state->__pyx_codeobj__620);
  Py_CLEAR(clear_module_state->__pyx_codeobj__621);
  Py_CLEAR(clear_module_state->__pyx_codeobj__622);
  Py_CLEAR(clear_module_state->__pyx_codeobj__624);
  Py_CLEAR(clear_module_state->__pyx_codeobj__626);
  Py_CLEAR(clear_module_state->__pyx_codeobj__627);
  Py_CLEAR(clear_module_state->__pyx_codeobj__630);
  Py_CLEAR(clear_module_state->__pyx_codeobj__631);
  Py_CLEAR(clear_module_state->__pyx_codeobj__632);
  Py_CLEAR(clear_module_state->__pyx_codeobj__633);
  Py_CLEAR(clear_module_state->__pyx_codeobj__634);
  Py_CLEAR(clear_module_state->__pyx_codeobj__636);
  Py_CLEAR(clear_module_state->__pyx_codeobj__637);
  Py_CLEAR(clear_module_state->__pyx_codeobj__639);
  Py_CLEAR(clear_module_state->__pyx_codeobj__640);
  Py_CLEAR(clear_module_state->__pyx_codeobj__642);
  Py_CLEAR(clear_module_state->__pyx_codeobj__644);
  Py_CLEAR(clear_module_state->__pyx_codeobj__646);
  Py_CLEAR(clear_module_state->__pyx_codeobj__647);
  Py_CLEAR(clear_module_state->__pyx_codeobj__649);
  Py_CLEAR(clear_module_state->__pyx_codeobj__650);
  Py_CLEAR(clear_module_state->__pyx_codeobj__651);
  Py_CLEAR(clear_module_state->__pyx_codeobj__652);
  Py_CLEAR(clear_module_state->__pyx_codeobj__653);
  Py_CLEAR(clear_module_state->__pyx_codeobj__655);
  Py_CLEAR(clear_module_state->__pyx_codeobj__656);
  Py_CLEAR(clear_module_state->__pyx_codeobj__658);
  Py_CLEAR(clear_module_state->__pyx_codeobj__659);
  Py_CLEAR(clear_module_state->__pyx_codeobj__660);
  Py_CLEAR(clear_module_state->__pyx_codeobj__661);
  Py_CLEAR(clear_module_state->__pyx_codeobj__663);
  Py_CLEAR(clear_module_state->__pyx_codeobj__665);
  Py_CLEAR(clear_module_state->__pyx_codeobj__666);
  Py_CLEAR(clear_module_state->__pyx_codeobj__668);
  Py_CLEAR(clear_module_state->__pyx_codeobj__669);
  Py_CLEAR(clear_module_state->__pyx_codeobj__671);
  Py_CLEAR(clear_module_state->__pyx_codeobj__673);
  Py_CLEAR(clear_module_state->__pyx_codeobj__675);
  Py_CLEAR(clear_module_state->__pyx_codeobj__676);
  Py_CLEAR(clear_module_state->__pyx_codeobj__678);
  Py_CLEAR(clear_module_state->__pyx_codeobj__679);
  Py_CLEAR(clear_module_state->__pyx_codeobj__680);
  Py_CLEAR(clear_module_state->__pyx_codeobj__682);
  Py_CLEAR(clear_module_state->__pyx_codeobj__684);
  Py_CLEAR(clear_module_state->__pyx_codeobj__685);
  Py_CLEAR(clear_module_state->__pyx_codeobj__687);
  Py_CLEAR(clear_module_state->__pyx_codeobj__688);
  Py_CLEAR(clear_module_state->__pyx_codeobj__689);
  Py_CLEAR(clear_module_state->__pyx_codeobj__691);
  Py_CLEAR(clear_module_state->__pyx_codeobj__693);
  Py_CLEAR(clear_module_state->__pyx_codeobj__694);
  Py_CLEAR(clear_module_state->__pyx_codeobj__696);
  Py_CLEAR(clear_module_state->__pyx_codeobj__697);
  Py_CLEAR(clear_module_state->__pyx_codeobj__699);
  Py_CLEAR(clear_module_state->__pyx_codeobj__701);
  Py_CLEAR(clear_module_state->__pyx_codeobj__703);
  Py_CLEAR(clear_module_state->__pyx_codeobj__705);
  Py_CLEAR(clear_module_state->__pyx_codeobj__706);
  Py_CLEAR(clear_module_state->__pyx_codeobj__707);
  Py_CLEAR(clear_module_state->__pyx_codeobj__709);
  Py_CLEAR(clear_module_state->__pyx_codeobj__710);
  Py_CLEAR(clear_module_state->__pyx_codeobj__712);
  Py_CLEAR(clear_module_state->__pyx_codeobj__714);
  Py_CLEAR(clear_module_state->__pyx_codeobj__716);
  Py_CLEAR(clear_module_state->__pyx_codeobj__718);
  Py_CLEAR(clear_module_state->__pyx_codeobj__719);
  Py_CLEAR(clear_module_state->__pyx_codeobj__720);
  Py_CLEAR(clear_module_state->__pyx_codeobj__722);
  Py_CLEAR(clear_module_state->__pyx_codeobj__723);
  Py_CLEAR(clear_module_state->__pyx_codeobj__725);
  Py_CLEAR(clear_module_state->__pyx_codeobj__726);
  Py_CLEAR(clear_module_state->__pyx_codeobj__727);
  Py_CLEAR(clear_module_state->__pyx_codeobj__729);
  Py_CLEAR(clear_module_state->__pyx_codeobj__731);
  Py_CLEAR(clear_module_state->__pyx_codeobj__732);
  Py_CLEAR(clear_module_state->__pyx_codeobj__734);
  Py_CLEAR(clear_module_state->__pyx_codeobj__735);
  Py_CLEAR(clear_module_state->__pyx_codeobj__736);
  Py_CLEAR(clear_module_state->__pyx_codeobj__737);
  Py_CLEAR(clear_module_state->__pyx_codeobj__739);
  Py_CLEAR(clear_module_state->__pyx_codeobj__740);
  Py_CLEAR(clear_module_state->__pyx_codeobj__742);
  Py_CLEAR(clear_module_state->__pyx_codeobj__743);
  Py_CLEAR(clear_module_state->__pyx_codeobj__745);
  Py_CLEAR(clear_module_state->__pyx_codeobj__747);
  Py_CLEAR(clear_module_state->__pyx_codeobj__749);
  Py_CLEAR(clear_module_state->__pyx_codeobj__750);
  Py_CLEAR(clear_module_state->__pyx_codeobj__752);
  Py_CLEAR(clear_module_state->__pyx_codeobj__753);
  Py_CLEAR(clear_module_state->__pyx_codeobj__755);
  Py_CLEAR(clear_module_state->__pyx_codeobj__757);
  Py_CLEAR(clear_module_state->__pyx_codeobj__759);
  Py_CLEAR(clear_module_state->__pyx_codeobj__760);
  Py_CLEAR(clear_module_state->__pyx_codeobj__762);
  Py_CLEAR(clear_module_state->__pyx_codeobj__763);
  Py_CLEAR(clear_module_state->__pyx_codeobj__765);
  Py_CLEAR(clear_module_state->__pyx_codeobj__766);
  Py_CLEAR(clear_module_state->__pyx_codeobj__768);
  Py_CLEAR(clear_module_state->__pyx_codeobj__769);
  Py_CLEAR(clear_module_state->__pyx_codeobj__771);
  Py_CLEAR(clear_module_state->__pyx_codeobj__772);
  Py_CLEAR(clear_module_state->__pyx_codeobj__773);
  Py_CLEAR(clear_module_state->__pyx_codeobj__774);
  Py_CLEAR(clear_module_state->__pyx_codeobj__776);
  Py_CLEAR(clear_module_state->__pyx_codeobj__778);
  Py_CLEAR(clear_module_state->__pyx_codeobj__780);
  Py_CLEAR(clear_module_state->__pyx_codeobj__781);
  Py_CLEAR(clear_module_state->__pyx_codeobj__782);
  Py_CLEAR(clear_module_state->__pyx_codeobj__785);
  Py_CLEAR(clear_module_state->__pyx_codeobj__787);
  Py_CLEAR(clear_module_state->__pyx_codeobj__788);
  Py_CLEAR(clear_module_state->__pyx_codeobj__790);
  Py_CLEAR(clear_module_state->__pyx_codeobj__791);
  Py_CLEAR(clear_module_state->__pyx_codeobj__792);
  Py_CLEAR(clear_module_state->__pyx_codeobj__793);
  Py_CLEAR(clear_module_state->__pyx_codeobj__795);
  Py_CLEAR(clear_module_state->__pyx_codeobj__796);
  Py_CLEAR(clear_module_state->__pyx_codeobj__798);
  Py_CLEAR(clear_module_state->__pyx_codeobj__799);
  Py_CLEAR(clear_module_state->__pyx_codeobj__800);
  Py_CLEAR(clear_module_state->__pyx_codeobj__801);
  Py_CLEAR(clear_module_state->__pyx_codeobj__803);
  Py_CLEAR(clear_module_state->__pyx_codeobj__804);
  Py_CLEAR(clear_module_state->__pyx_codeobj__805);
  Py_CLEAR(clear_module_state->__pyx_codeobj__806);
  Py_CLEAR(clear_module_state->__pyx_codeobj__807);
  Py_CLEAR(clear_module_state->__pyx_codeobj__809);
  Py_CLEAR(clear_module_state->__pyx_codeobj__810);
  Py_CLEAR(clear_module_state->__pyx_codeobj__812);
  Py_CLEAR(clear_module_state->__pyx_codeobj__813);
  Py_CLEAR(clear_module_state->__pyx_codeobj__814);
  Py_CLEAR(clear_module_state->__pyx_codeobj__815);
  Py_CLEAR(clear_module_state->__pyx_codeobj__817);
  Py_CLEAR(clear_module_state->__pyx_codeobj__818);
  Py_CLEAR(clear_module_state->__pyx_codeobj__820);
  Py_CLEAR(clear_module_state->__pyx_codeobj__821);
  Py_CLEAR(clear_module_state->__pyx_codeobj__822);
  Py_CLEAR(clear_module_state->__pyx_codeobj__823);
  Py_CLEAR(clear_module_state->__pyx_codeobj__825);
  Py_CLEAR(clear_module_state->__pyx_codeobj__827);
  Py_CLEAR(clear_module_state->__pyx_codeobj__828);
  Py_CLEAR(clear_module_state->__pyx_codeobj__830);
  Py_CLEAR(clear_module_state->__pyx_codeobj__831);
  Py_CLEAR(clear_module_state->__pyx_codeobj__832);
  Py_CLEAR(clear_module_state->__pyx_codeobj__833);
  Py_CLEAR(clear_module_state->__pyx_codeobj__835);
  Py_CLEAR(clear_module_state->__pyx_codeobj__836);
  Py_CLEAR(clear_module_state->__pyx_codeobj__837);
  Py_CLEAR(clear_module_state->__pyx_codeobj__839);
  Py_CLEAR(clear_module_state->__pyx_codeobj__841);
  Py_CLEAR(clear_module_state->__pyx_codeobj__843);
  Py_CLEAR(clear_module_state->__pyx_codeobj__846);
  Py_CLEAR(clear_module_state->__pyx_codeobj__847);
  Py_CLEAR(clear_module_state->__pyx_codeobj__848);
  Py_CLEAR(clear_module_state->__pyx_codeobj__850);
  Py_CLEAR(clear_module_state->__pyx_codeobj__852);
  Py_CLEAR(clear_module_state->__pyx_codeobj__853);
  Py_CLEAR(clear_module_state->__pyx_codeobj__855);
  Py_CLEAR(clear_module_state->__pyx_codeobj__856);
  Py_CLEAR(clear_module_state->__pyx_codeobj__857);
  Py_CLEAR(clear_module_state->__pyx_codeobj__858);
  Py_CLEAR(clear_module_state->__pyx_codeobj__859);
  Py_CLEAR(clear_module_state->__pyx_codeobj__860);
  Py_CLEAR(clear_module_state->__pyx_codeobj__861);
  Py_CLEAR(clear_module_state->__pyx_codeobj__862);
  Py_CLEAR(clear_module_state->__pyx_codeobj__863);
  Py_CLEAR(clear_module_state->__pyx_codeobj__864);
  Py_CLEAR(clear_module_state->__pyx_codeobj__865);
  Py_CLEAR(clear_module_state->__pyx_codeobj__866);
  Py_CLEAR(clear_module_state->__pyx_codeobj__867);
  Py_CLEAR(clear_module_state->__pyx_codeobj__868);
  Py_CLEAR(clear_module_state->__pyx_codeobj__869);
  Py_CLEAR(clear_module_state->__pyx_codeobj__870);
  Py_CLEAR(clear_module_state->__pyx_codeobj__871);
  Py_CLEAR(clear_module_state->__pyx_codeobj__872);
  Py_CLEAR(clear_module_state->__pyx_codeobj__873);
  Py_CLEAR(clear_module_state->__pyx_codeobj__874);
  Py_CLEAR(clear_module_state->__pyx_codeobj__875);
  Py_CLEAR(clear_module_state->__pyx_codeobj__876);
  Py_CLEAR(clear_module_state->__pyx_codeobj__877);
  Py_CLEAR(clear_module_state->__pyx_codeobj__878);
  Py_CLEAR(clear_module_state->__pyx_codeobj__879);
  Py_CLEAR(clear_module_state->__pyx_codeobj__880);
  Py_CLEAR(clear_module_state->__pyx_codeobj__881);
  Py_CLEAR(clear_module_state->__pyx_codeobj__882);
  Py_CLEAR(clear_module_state->__pyx_codeobj__883);
  Py_CLEAR(clear_module_state->__pyx_codeobj__884);
  Py_CLEAR(clear_module_state->__pyx_codeobj__885);
  Py_CLEAR(clear_module_state->__pyx_codeobj__886);
  Py_CLEAR(clear_module_state->__pyx_codeobj__887);
  Py_CLEAR(clear_module_state->__pyx_codeobj__888);
  Py_CLEAR(clear_module_state->__pyx_codeobj__889);
  Py_CLEAR(clear_module_state->__pyx_codeobj__890);
  Py_CLEAR(clear_module_state->__pyx_codeobj__891);
  Py_CLEAR(clear_module_state->__pyx_codeobj__892);
  Py_CLEAR(clear_module_state->__pyx_codeobj__893);
  Py_CLEAR(clear_module_state->__pyx_codeobj__894);
  Py_CLEAR(clear_module_state->__pyx_codeobj__895);
  Py_CLEAR(clear_module_state->__pyx_codeobj__896);
  Py_CLEAR(clear_module_state->__pyx_codeobj__897);
  Py_CLEAR(clear_module_state->__pyx_codeobj__898);
  Py_CLEAR(clear_module_state->__pyx_codeobj__899);
  Py_CLEAR(clear_module_state->__pyx_codeobj__900);
  Py_CLEAR(clear_module_state->__pyx_codeobj__901);
  Py_CLEAR(clear_module_state->__pyx_codeobj__902);
  Py_CLEAR(clear_module_state->__pyx_codeobj__903);
  Py_CLEAR(clear_module_state->__pyx_codeobj__904);
  Py_CLEAR(clear_module_state->__pyx_codeobj__905);
  Py_CLEAR(clear_module_state->__pyx_codeobj__906);
  Py_CLEAR(clear_module_state->__pyx_codeobj__907);
  Py_CLEAR(clear_module_state->__pyx_codeobj__908);
  Py_CLEAR(clear_module_state->__pyx_codeobj__909);
  Py_CLEAR(clear_module_state->__pyx_codeobj__910);
  Py_CLEAR(clear_module_state->__pyx_codeobj__911);
  Py_CLEAR(clear_module_state->__pyx_codeobj__912);
  Py_CLEAR(clear_module_state->__pyx_codeobj__913);
  Py_CLEAR(clear_module_state->__pyx_codeobj__914);
  Py_CLEAR(clear_module_state->__pyx_codeobj__915);
  Py_CLEAR(clear_module_state->__pyx_codeobj__916);
  Py_CLEAR(clear_module_state->__pyx_codeobj__917);
  Py_CLEAR(clear_module_state->__pyx_codeobj__918);
  Py_CLEAR(clear_module_state->__pyx_codeobj__919);
  Py_CLEAR(clear_module_state->__pyx_codeobj__920);
  Py_CLEAR(clear_module_state->__pyx_codeobj__921);
  Py_CLEAR(clear_module_state->__pyx_codeobj__922);
  Py_CLEAR(clear_module_state->__pyx_codeobj__923);
  Py_CLEAR(clear_module_state->__pyx_codeobj__924);
  Py_CLEAR(clear_module_state->__pyx_codeobj__925);
  Py_CLEAR(clear_module_state->__pyx_codeobj__926);
  Py_CLEAR(clear_module_state->__pyx_codeobj__927);
  Py_CLEAR(clear_module_state->__pyx_codeobj__928);
  Py_CLEAR(clear_module_state->__pyx_codeobj__929);
  Py_CLEAR(clear_module_state->__pyx_codeobj__930);
  Py_CLEAR(clear_module_state->__pyx_codeobj__931);
  Py_CLEAR(clear_module_state->__pyx_codeobj__932);
  Py_CLEAR(clear_module_state->__pyx_codeobj__933);
  Py_CLEAR(clear_module_state->__pyx_codeobj__934);
  return 0;
}
#endif
/* #### Code section: module_state_traverse ### */
#if CYTHON_USE_MODULE_STATE
static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
  __pyx_mstate *traverse_module_state = __pyx_mstate(m);
  if (!traverse_module_state) return 0;
  Py_VISIT(traverse_module_state->__pyx_d);
  Py_VISIT(traverse_module_state->__pyx_b);
  Py_VISIT(traverse_module_state->__pyx_cython_runtime);
  Py_VISIT(traverse_module_state->__pyx_empty_tuple);
  Py_VISIT(traverse_module_state->__pyx_empty_bytes);
  Py_VISIT(traverse_module_state->__pyx_empty_unicode);
  #ifdef __Pyx_CyFunction_USED
  Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
  #endif
  #ifdef __Pyx_FusedFunction_USED
  Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
  #endif
  Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
  Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_3clm_mus_any);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_CLMGenerator);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_CLMGenerator);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nxysin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nxysin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nxycos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nxycos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Noddcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Noddcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Noddssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Noddssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Ncos2);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Ncos2);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Ncos4);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Ncos4);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Npcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Npcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Ncos5);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Ncos5);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nsin5);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nsin5);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nrcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nrcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nrssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nrssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nkssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nkssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nsincos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nsincos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_N1cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_N1cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Npos1cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Npos1cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Npos3cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Npos3cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rxysin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rxysin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rxycos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rxycos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_SafeRxycos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_SafeRxycos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Ercos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Ercos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Erssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Erssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_R2cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_R2cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_R2ssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_R2ssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Eoddcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Eoddcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rkcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rkcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rksin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rksin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rkssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rkssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rkfcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rkfcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rkfssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rkfssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_R2kfcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_R2kfcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_K2sin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_K2sin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_K2cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_K2cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_K2ssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_K2ssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Dblsum);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Dblsum);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Krksin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Krksin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Absin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Absin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Abcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Abcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_R2k2cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_R2k2cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Blsaw);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Blsaw);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Asyfm);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Asyfm);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Bess);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Bess);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Jjcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Jjcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_J0evencos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_J0evencos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_J2cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_J2cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Jpcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Jpcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Jncos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Jncos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_J0j1cos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_J0j1cos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Jycos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Jycos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Jcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Jcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Blackman);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Blackman);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Fmssb);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Fmssb);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_K3sin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_K3sin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Izcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Izcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_AdjustableSquareWave);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_AdjustableTriangleWave);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_AdjustableOscil);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_AdjustableOscil);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_RoundInterp);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_RoundInterp);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_SincTrain);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_SincTrain);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_PinkNoise);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_PinkNoise);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_BrownNoise);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_BrownNoise);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_GreenNoise);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_GreenNoise);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_GreenNoiseInterp);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_MovingSum);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_MovingSum);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_MovingVariance);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_MovingVariance);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_MovingRMS);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_MovingRMS);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_MovingLength);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_MovingLength);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_WeightedMovingAverage);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Tanhsin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Tanhsin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_Noddsin);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_Noddsin);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators_MovingFFT);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators_MovingFFT);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max);
  Py_VISIT(traverse_module_state->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env);
  Py_VISIT(traverse_module_state->__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env);
  Py_VISIT(traverse_module_state->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y);
  Py_VISIT(traverse_module_state->__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y);
  Py_VISIT(traverse_module_state->__pyx_kp_u_);
  Py_VISIT(traverse_module_state->__pyx_n_s_Abcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Abcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Abcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Abcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Absin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Absin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Absin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Absin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableOscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableOscil___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableOscil___setstate_cytho);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableOscil_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSawtoothWave);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSawtoothWave___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSawtoothWave___setstat);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSawtoothWave_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSquareWave);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSquareWave___reduce_cy);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSquareWave___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableSquareWave_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableTriangleWave);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableTriangleWave___reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableTriangleWave___setstat);
  Py_VISIT(traverse_module_state->__pyx_n_s_AdjustableTriangleWave_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm_next_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_Asyfm_next_j);
  Py_VISIT(traverse_module_state->__pyx_n_s_BOTH_KINDS);
  Py_VISIT(traverse_module_state->__pyx_n_s_Bess);
  Py_VISIT(traverse_module_state->__pyx_n_s_Bess___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Bess___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Bess_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blackman);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blackman___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blackman___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blackman_mus_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blackman_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blsaw);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blsaw___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blsaw___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Blsaw_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_BrownNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_BrownNoise___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_BrownNoise___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_BrownNoise_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_CLMGenerator);
  Py_VISIT(traverse_module_state->__pyx_n_s_CLMGenerator___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CLMGenerator___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_CLMGenerator_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Dblsum);
  Py_VISIT(traverse_module_state->__pyx_n_s_Dblsum___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Dblsum___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Dblsum_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_EITHER_KIND);
  Py_VISIT(traverse_module_state->__pyx_n_s_Eoddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Eoddcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Eoddcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Eoddcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ercos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ercos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ercos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ercos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Erssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Erssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Erssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Erssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera);
  Py_VISIT(traverse_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_3);
  Py_VISIT(traverse_module_state->__pyx_n_s_ExponentiallyWeightedMovingAvera_4);
  Py_VISIT(traverse_module_state->__pyx_n_s_FIRST_KIND);
  Py_VISIT(traverse_module_state->__pyx_n_s_Fmssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Fmssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Fmssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Fmssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoiseInterp);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoiseInterp___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoiseInterp___setstate_cyth);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoiseInterp_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoise___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoise___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_GreenNoise_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_ImportError);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8);
  Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9);
  Py_VISIT(traverse_module_state->__pyx_n_s_Izcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Izcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Izcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Izcos_mus_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_Izcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0evencos);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0evencos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0evencos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0evencos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0j1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0j1cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0j1cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J0j1cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_J2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_J2cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J2cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_J2cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jjcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jjcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jjcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jjcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jncos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jncos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jncos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jncos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jpcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jpcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jpcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jpcos_next);
  Py_VISIT(traverse_module_state->__pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jycos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jycos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Jycos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2sin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2sin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2sin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2ssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2ssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K2ssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_K3sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_K3sin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K3sin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_K3sin_mus_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_K3sin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Krksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Krksin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Krksin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Krksin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingFFT);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingFFT___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingFFT___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingFFT_mus_run);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingFFT_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingLength);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingLength___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingLength___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingRMS);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingRMS___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingRMS___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingRMS_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingSum);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingSum___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingSum___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingSum_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingVariance);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingVariance___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingVariance___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_MovingVariance_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_N1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_N1cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_N1cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_N1cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nchoosekcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nchoosekcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nchoosekcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos2___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos2___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos2_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos4);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos4___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos4___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos4_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos5);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos5___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos5___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Ncos5_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nkssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nkssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nkssb_call_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nkssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddsin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddsin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddsin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Noddssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos1cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos1cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos1cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos3cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos3cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos3cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Npos3cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrssb_call_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nrssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsin5);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsin5___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsin5___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsin5_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsincos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsincos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsincos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nsincos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1sin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1sin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxy1sin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxycos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxycos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxycos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxysin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxysin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Nxysin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_PickleError);
  Py_VISIT(traverse_module_state->__pyx_n_s_PinkNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_PinkNoise___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PinkNoise___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_PinkNoise_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Polynomial);
  Py_VISIT(traverse_module_state->__pyx_n_s_Pyx_CFunc_double__lParenobject);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2k2cos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2k2cos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2k2cos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2kfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2kfcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2kfcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2kfcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2ssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2ssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_R2ssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfcos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfcos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfcos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkfssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkoddssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkoddssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkoddssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rksin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rksin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rksin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rkssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_RoundInterp);
  Py_VISIT(traverse_module_state->__pyx_n_s_RoundInterp___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RoundInterp___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_RoundInterp_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rssb___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rssb___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rssb_call_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rssb_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxycos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxycos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxycos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxysin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxysin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Rxysin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_SECOND_KIND);
  Py_VISIT(traverse_module_state->__pyx_n_s_SafeRxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_SafeRxycos___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SafeRxycos___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SafeRxycos_clamp_rxycos_r);
  Py_VISIT(traverse_module_state->__pyx_n_s_SafeRxycos_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_SincTrain);
  Py_VISIT(traverse_module_state->__pyx_n_s_SincTrain___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SincTrain___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_SincTrain_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tanhsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tanhsin___reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tanhsin___setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_Tanhsin_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
  Py_VISIT(traverse_module_state->__pyx_n_s_WeightedMovingAverage);
  Py_VISIT(traverse_module_state->__pyx_n_s_WeightedMovingAverage___reduce_c);
  Py_VISIT(traverse_module_state->__pyx_n_s_WeightedMovingAverage___setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_WeightedMovingAverage_next);
  Py_VISIT(traverse_module_state->__pyx_n_s__2);
  Py_VISIT(traverse_module_state->__pyx_n_s__935);
  Py_VISIT(traverse_module_state->__pyx_n_s_a);
  Py_VISIT(traverse_module_state->__pyx_n_s_a2);
  Py_VISIT(traverse_module_state->__pyx_kp_u_a_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_abcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_absin);
  Py_VISIT(traverse_module_state->__pyx_n_s_acos);
  Py_VISIT(traverse_module_state->__pyx_n_s_adjustable_oscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_adjustable_sawtooth_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_adjustable_square_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_adjustable_triangle_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_amplitude);
  Py_VISIT(traverse_module_state->__pyx_n_s_angle);
  Py_VISIT(traverse_module_state->__pyx_n_s_arg1);
  Py_VISIT(traverse_module_state->__pyx_n_s_arg2);
  Py_VISIT(traverse_module_state->__pyx_n_s_array);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyfm);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyfm_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyfm_j);
  Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
  Py_VISIT(traverse_module_state->__pyx_n_s_atan2);
  Py_VISIT(traverse_module_state->__pyx_n_s_b);
  Py_VISIT(traverse_module_state->__pyx_n_s_bes_i0);
  Py_VISIT(traverse_module_state->__pyx_n_s_bess);
  Py_VISIT(traverse_module_state->__pyx_n_s_bessel_peaks);
  Py_VISIT(traverse_module_state->__pyx_n_s_blackman);
  Py_VISIT(traverse_module_state->__pyx_n_s_blackman4_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_blackman_coeffs);
  Py_VISIT(traverse_module_state->__pyx_n_s_blsaw);
  Py_VISIT(traverse_module_state->__pyx_n_s_brown_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_call_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_ceil);
  Py_VISIT(traverse_module_state->__pyx_n_s_cfunc_to_py);
  Py_VISIT(traverse_module_state->__pyx_n_s_channels);
  Py_VISIT(traverse_module_state->__pyx_n_s_clamp);
  Py_VISIT(traverse_module_state->__pyx_n_s_clamp_rxycos_r);
  Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem);
  Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
  Py_VISIT(traverse_module_state->__pyx_n_s_clm);
  Py_VISIT(traverse_module_state->__pyx_n_s_copyto);
  Py_VISIT(traverse_module_state->__pyx_n_s_cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_cosh);
  Py_VISIT(traverse_module_state->__pyx_kp_s_cython_double);
  Py_VISIT(traverse_module_state->__pyx_n_s_data);
  Py_VISIT(traverse_module_state->__pyx_n_s_dblsum);
  Py_VISIT(traverse_module_state->__pyx_n_s_default);
  Py_VISIT(traverse_module_state->__pyx_n_s_den);
  Py_VISIT(traverse_module_state->__pyx_n_s_dict);
  Py_VISIT(traverse_module_state->__pyx_n_s_dict_2);
  Py_VISIT(traverse_module_state->__pyx_kp_u_disable);
  Py_VISIT(traverse_module_state->__pyx_n_s_double);
  Py_VISIT(traverse_module_state->__pyx_n_s_dtype);
  Py_VISIT(traverse_module_state->__pyx_n_s_duty_factor);
  Py_VISIT(traverse_module_state->__pyx_n_s_e);
  Py_VISIT(traverse_module_state->__pyx_kp_u_enable);
  Py_VISIT(traverse_module_state->__pyx_kp_u_enum_class_Polynomial_not_import);
  Py_VISIT(traverse_module_state->__pyx_n_s_eoddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_ercos);
  Py_VISIT(traverse_module_state->__pyx_n_s_erssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_exp);
  Py_VISIT(traverse_module_state->__pyx_n_s_exponentially_weighted_moving_av);
  Py_VISIT(traverse_module_state->__pyx_n_s_expts);
  Py_VISIT(traverse_module_state->__pyx_n_s_fabs);
  Py_VISIT(traverse_module_state->__pyx_n_s_fill);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_mid_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nodds_mid_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_noddsin_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_noddsin_max_locals_find_mid);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nsin5_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nsin5_max_locals_find_mid_m);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nsin5_max_locals_ns);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nxysin_max);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nxysin_max_locals_find_mid);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nxysin_max_locals_find_nodd);
  Py_VISIT(traverse_module_state->__pyx_n_s_find_nxysin_max_locals_ns);
  Py_VISIT(traverse_module_state->__pyx_n_s_floor);
  Py_VISIT(traverse_module_state->__pyx_n_s_fm);
  Py_VISIT(traverse_module_state->__pyx_n_s_fmssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_frequency);
  Py_VISIT(traverse_module_state->__pyx_n_s_fun);
  Py_VISIT(traverse_module_state->__pyx_kp_u_gc);
  Py_VISIT(traverse_module_state->__pyx_n_s_gen);
  Py_VISIT(traverse_module_state->__pyx_n_s_getstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_green_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_green_noise_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_hi);
  Py_VISIT(traverse_module_state->__pyx_n_s_high);
  Py_VISIT(traverse_module_state->__pyx_n_s_hop);
  Py_VISIT(traverse_module_state->__pyx_n_s_im);
  Py_VISIT(traverse_module_state->__pyx_n_s_import);
  Py_VISIT(traverse_module_state->__pyx_n_s_index);
  Py_VISIT(traverse_module_state->__pyx_n_s_init);
  Py_VISIT(traverse_module_state->__pyx_n_s_initial_phase);
  Py_VISIT(traverse_module_state->__pyx_n_s_initializing);
  Py_VISIT(traverse_module_state->__pyx_n_s_insig);
  Py_VISIT(traverse_module_state->__pyx_n_s_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_abcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_absin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_adjustable_oscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_adjustable_sawtooth_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_adjustable_square_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_adjustable_triangle_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_asyfm);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_bess);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_blackman);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_blsaw);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_brown_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_dblsum);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_eoddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_ercos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_erssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_exponentially_weighted_moving);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_fmssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_green_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_green_noise_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_izcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_j0evencos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_j0j1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_j2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_jcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_jjcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_jncos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_jpcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_jycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_k2sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_k2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_k3sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_krksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_moving_fft);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_moving_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_moving_rms);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_moving_sum);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_moving_variance);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_n1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_ncos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_ncos4);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_ncos5);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_noddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_noddsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_noddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_npcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_npos1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_npos3cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nrcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nrsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nrssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nsin5);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nsincos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_nxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_pink_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_polyoid);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_r2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_r2k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_r2kfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_r2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rkcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rkfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rkfssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_round_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_rxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_safe_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_sinc_train);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_tanhsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_is_weighted_moving_average);
  Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled);
  Py_VISIT(traverse_module_state->__pyx_n_s_izcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_j0evencos);
  Py_VISIT(traverse_module_state->__pyx_n_s_j0j1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_j2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_jcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_jjcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_jncos);
  Py_VISIT(traverse_module_state->__pyx_n_s_jpcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_jycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_k);
  Py_VISIT(traverse_module_state->__pyx_n_s_k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_k2sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_k2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_k3sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_krksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_last_moving_fft_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_lo);
  Py_VISIT(traverse_module_state->__pyx_n_s_log);
  Py_VISIT(traverse_module_state->__pyx_n_s_low);
  Py_VISIT(traverse_module_state->__pyx_n_s_main);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_abcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_absin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_adjustable_oscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_adjustable_sawtooth_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_adjustable_square_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_adjustable_triangle_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_asyfm);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_bess);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_blackman);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_blsaw);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_brown_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_dblsum);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_eoddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_ercos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_erssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_exponentially_weighted_movi);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_fmssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_green_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_green_noise_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_izcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_j0evencos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_j0j1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_j2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_jcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_jjcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_jncos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_jpcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_jycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_k2sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_k2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_k3sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_krksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_average);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_fft);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_rms);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_sum);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_moving_variance);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_n1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_ncos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_ncos4);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_ncos5);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_noddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_noddsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_noddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_npcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_npos1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_npos3cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nrcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nrsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nrssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nrxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nsin5);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nsincos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_nxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_one_pole);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_oscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_pink_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_polyoid);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_polywave);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_pulse_train);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_r2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_r2k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_r2kfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_r2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rand);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rand_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rkcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rkfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rkfssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_round_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_rxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_safe_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_sinc_train);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_table_lookup);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_table_lookup_with_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_tanhsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_triangle_wave);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_wave_train);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_wave_train_with_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_make_weighted_moving_average);
  Py_VISIT(traverse_module_state->__pyx_n_s_math);
  Py_VISIT(traverse_module_state->__pyx_n_s_mid);
  Py_VISIT(traverse_module_state->__pyx_n_s_moving_fft);
  Py_VISIT(traverse_module_state->__pyx_n_s_moving_length);
  Py_VISIT(traverse_module_state->__pyx_n_s_moving_rms);
  Py_VISIT(traverse_module_state->__pyx_n_s_moving_sum);
  Py_VISIT(traverse_module_state->__pyx_n_s_moving_variance);
  Py_VISIT(traverse_module_state->__pyx_n_s_multi_expt_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_multi_expt_env_locals_fun);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_channel);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_frequency);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_increment);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_phase);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_reset);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_run);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_xcoeffs);
  Py_VISIT(traverse_module_state->__pyx_n_s_mus_ycoeffs);
  Py_VISIT(traverse_module_state->__pyx_kp_u_must_be_r);
  Py_VISIT(traverse_module_state->__pyx_n_s_n);
  Py_VISIT(traverse_module_state->__pyx_n_s_n1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_name);
  Py_VISIT(traverse_module_state->__pyx_n_s_nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_ncos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_ncos4);
  Py_VISIT(traverse_module_state->__pyx_n_s_ncos5);
  Py_VISIT(traverse_module_state->__pyx_n_s_new);
  Py_VISIT(traverse_module_state->__pyx_n_s_next);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_i);
  Py_VISIT(traverse_module_state->__pyx_n_s_next_j);
  Py_VISIT(traverse_module_state->__pyx_n_s_nkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_nkssb_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_noddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nodds);
  Py_VISIT(traverse_module_state->__pyx_n_s_noddsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_noddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_norm);
  Py_VISIT(traverse_module_state->__pyx_n_s_np);
  Py_VISIT(traverse_module_state->__pyx_n_s_npcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_npos1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_npos3cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nrcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nrsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_nrssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_nrssb_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_ns);
  Py_VISIT(traverse_module_state->__pyx_n_s_nsin5);
  Py_VISIT(traverse_module_state->__pyx_n_s_nsincos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_num);
  Py_VISIT(traverse_module_state->__pyx_n_s_numpy);
  Py_VISIT(traverse_module_state->__pyx_kp_u_numpy_core_multiarray_failed_to);
  Py_VISIT(traverse_module_state->__pyx_kp_u_numpy_core_umath_failed_to_impor);
  Py_VISIT(traverse_module_state->__pyx_n_s_nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_nxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_nxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_osc);
  Py_VISIT(traverse_module_state->__pyx_n_s_outctr);
  Py_VISIT(traverse_module_state->__pyx_n_s_partial_amps_and_phases);
  Py_VISIT(traverse_module_state->__pyx_n_s_pi);
  Py_VISIT(traverse_module_state->__pyx_n_s_pickle);
  Py_VISIT(traverse_module_state->__pyx_n_s_pink_noise);
  Py_VISIT(traverse_module_state->__pyx_n_s_polyoid);
  Py_VISIT(traverse_module_state->__pyx_n_s_polyoid_tn);
  Py_VISIT(traverse_module_state->__pyx_n_s_polyoid_un);
  Py_VISIT(traverse_module_state->__pyx_n_s_pow);
  Py_VISIT(traverse_module_state->__pyx_n_s_pulse_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_pysndlib);
  Py_VISIT(traverse_module_state->__pyx_n_s_pysndlib_clm);
  Py_VISIT(traverse_module_state->__pyx_n_s_pysndlib_generators);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Abcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Absin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_AdjustableOscil);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_AdjustableSawtoot);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_AdjustableSquareW);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_AdjustableTriangl);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Asyfm);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Bess);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Blackman);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Blsaw);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_BrownNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_CLMGenerator);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Dblsum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Eoddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Ercos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Erssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_ExponentiallyWeig);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Fmssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_GreenNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_GreenNoiseInterp);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Izcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_J0evencos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_J0j1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_J2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Jcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Jjcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Jncos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Jpcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Jycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_K2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_K2sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_K2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_K3sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Krksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_MovingFFT);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_MovingLength);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_MovingRMS);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_MovingSum);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_MovingVariance);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_N1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nchoosekcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Ncos2);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Ncos4);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Ncos5);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Noddcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Noddsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Noddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Npcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Npos1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Npos3cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nrcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nrssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nsin5);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nsincos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nxy1cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nxy1sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Nxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_PinkNoise);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_R2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_R2k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_R2kfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_R2ssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rkcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rkfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rkfssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_RoundInterp);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Rxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_SafeRxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_SincTrain);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Tanhsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_WeightedMovingAve);
  Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable);
  Py_VISIT(traverse_module_state->__pyx_n_s_r);
  Py_VISIT(traverse_module_state->__pyx_n_s_r2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_r2k2cos);
  Py_VISIT(traverse_module_state->__pyx_n_s_r2kfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_r2ssb);
  Py_VISIT(traverse_module_state->__pyx_kp_u_r_2);
  Py_VISIT(traverse_module_state->__pyx_n_s_random);
  Py_VISIT(traverse_module_state->__pyx_n_s_range);
  Py_VISIT(traverse_module_state->__pyx_n_s_ratio);
  Py_VISIT(traverse_module_state->__pyx_n_s_rcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_reader);
  Py_VISIT(traverse_module_state->__pyx_n_s_real);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
  Py_VISIT(traverse_module_state->__pyx_n_s_rkcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_rkfcos);
  Py_VISIT(traverse_module_state->__pyx_n_s_rkfssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_rkoddssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_rksin);
  Py_VISIT(traverse_module_state->__pyx_n_s_rkssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_rl);
  Py_VISIT(traverse_module_state->__pyx_n_s_rnd);
  Py_VISIT(traverse_module_state->__pyx_n_s_roll);
  Py_VISIT(traverse_module_state->__pyx_n_s_round_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_rssb);
  Py_VISIT(traverse_module_state->__pyx_n_s_rssb_interp);
  Py_VISIT(traverse_module_state->__pyx_n_s_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_rxysin);
  Py_VISIT(traverse_module_state->__pyx_n_s_safe_rxycos);
  Py_VISIT(traverse_module_state->__pyx_n_s_self);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython);
  Py_VISIT(traverse_module_state->__pyx_n_s_sin);
  Py_VISIT(traverse_module_state->__pyx_n_s_sinc_train);
  Py_VISIT(traverse_module_state->__pyx_n_s_sine_env);
  Py_VISIT(traverse_module_state->__pyx_n_s_sinh);
  Py_VISIT(traverse_module_state->__pyx_n_s_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_spec);
  Py_VISIT(traverse_module_state->__pyx_n_s_sqrt);
  Py_VISIT(traverse_module_state->__pyx_n_s_square_env);
  Py_VISIT(traverse_module_state->__pyx_kp_s_src_pysndlib_generators_pyx);
  Py_VISIT(traverse_module_state->__pyx_n_s_state);
  Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource);
  Py_VISIT(traverse_module_state->__pyx_n_s_super);
  Py_VISIT(traverse_module_state->__pyx_n_s_table_size);
  Py_VISIT(traverse_module_state->__pyx_n_s_tan);
  Py_VISIT(traverse_module_state->__pyx_n_s_tanh);
  Py_VISIT(traverse_module_state->__pyx_n_s_tanhsin);
  Py_VISIT(traverse_module_state->__pyx_n_s_test);
  Py_VISIT(traverse_module_state->__pyx_n_s_update);
  Py_VISIT(traverse_module_state->__pyx_n_s_use_setstate);
  Py_VISIT(traverse_module_state->__pyx_n_s_warn);
  Py_VISIT(traverse_module_state->__pyx_n_s_warnings);
  Py_VISIT(traverse_module_state->__pyx_n_s_weighted_moving_average);
  Py_VISIT(traverse_module_state->__pyx_kp_u_will_cause_bes_y0_to_return_inf);
  Py_VISIT(traverse_module_state->__pyx_n_s_window);
  Py_VISIT(traverse_module_state->__pyx_n_s_wrap);
  Py_VISIT(traverse_module_state->__pyx_n_s_x);
  Py_VISIT(traverse_module_state->__pyx_n_s_xcoeffs);
  Py_VISIT(traverse_module_state->__pyx_n_s_y);
  Py_VISIT(traverse_module_state->__pyx_n_s_ycoeffs);
  Py_VISIT(traverse_module_state->__pyx_n_s_yhi);
  Py_VISIT(traverse_module_state->__pyx_n_s_ylo);
  Py_VISIT(traverse_module_state->__pyx_n_s_zeros);
  Py_VISIT(traverse_module_state->__pyx_float__0);
  Py_VISIT(traverse_module_state->__pyx_float__5);
  Py_VISIT(traverse_module_state->__pyx_float_0_);
  Py_VISIT(traverse_module_state->__pyx_float_1_);
  Py_VISIT(traverse_module_state->__pyx_float_3_);
  Py_VISIT(traverse_module_state->__pyx_float__25);
  Py_VISIT(traverse_module_state->__pyx_float__54);
  Py_VISIT(traverse_module_state->__pyx_float_0_0);
  Py_VISIT(traverse_module_state->__pyx_float_0_5);
  Py_VISIT(traverse_module_state->__pyx_float_1_0);
  Py_VISIT(traverse_module_state->__pyx_float_2_0);
  Py_VISIT(traverse_module_state->__pyx_float_2_5);
  Py_VISIT(traverse_module_state->__pyx_float_3_0);
  Py_VISIT(traverse_module_state->__pyx_float_4_0);
  Py_VISIT(traverse_module_state->__pyx_float_5_0);
  Py_VISIT(traverse_module_state->__pyx_float__001);
  Py_VISIT(traverse_module_state->__pyx_float_0_54);
  Py_VISIT(traverse_module_state->__pyx_float_1eneg_9);
  Py_VISIT(traverse_module_state->__pyx_float_0_248);
  Py_VISIT(traverse_module_state->__pyx_float_0_252);
  Py_VISIT(traverse_module_state->__pyx_float_0_257);
  Py_VISIT(traverse_module_state->__pyx_float_0_262);
  Py_VISIT(traverse_module_state->__pyx_float_0_267);
  Py_VISIT(traverse_module_state->__pyx_float_0_273);
  Py_VISIT(traverse_module_state->__pyx_float_0_279);
  Py_VISIT(traverse_module_state->__pyx_float_0_286);
  Py_VISIT(traverse_module_state->__pyx_float_0_294);
  Py_VISIT(traverse_module_state->__pyx_float_0_303);
  Py_VISIT(traverse_module_state->__pyx_float_0_313);
  Py_VISIT(traverse_module_state->__pyx_float_0_325);
  Py_VISIT(traverse_module_state->__pyx_float_0_338);
  Py_VISIT(traverse_module_state->__pyx_float_0_355);
  Py_VISIT(traverse_module_state->__pyx_float_0_375);
  Py_VISIT(traverse_module_state->__pyx_float_0_400);
  Py_VISIT(traverse_module_state->__pyx_float_0_435);
  Py_VISIT(traverse_module_state->__pyx_float_0_487);
  Py_VISIT(traverse_module_state->__pyx_float_0_582);
  Py_VISIT(traverse_module_state->__pyx_float_1_000);
  Py_VISIT(traverse_module_state->__pyx_float__00001);
  Py_VISIT(traverse_module_state->__pyx_float__08333);
  Py_VISIT(traverse_module_state->__pyx_float__99999);
  Py_VISIT(traverse_module_state->__pyx_float_1_0eneg_6);
  Py_VISIT(traverse_module_state->__pyx_float_1_0eneg_9);
  Py_VISIT(traverse_module_state->__pyx_float__201416);
  Py_VISIT(traverse_module_state->__pyx_float__293557);
  Py_VISIT(traverse_module_state->__pyx_float__999999);
  Py_VISIT(traverse_module_state->__pyx_float_0_14128);
  Py_VISIT(traverse_module_state->__pyx_float_0_20762);
  Py_VISIT(traverse_module_state->__pyx_float_0_20844);
  Py_VISIT(traverse_module_state->__pyx_float_0_29145);
  Py_VISIT(traverse_module_state->__pyx_float_0_35875);
  Py_VISIT(traverse_module_state->__pyx_float_0_42323);
  Py_VISIT(traverse_module_state->__pyx_float_0_48829);
  Py_VISIT(traverse_module_state->__pyx_float__2151527);
  Py_VISIT(traverse_module_state->__pyx_float__2180041);
  Py_VISIT(traverse_module_state->__pyx_float__2257345);
  Py_VISIT(traverse_module_state->__pyx_float__2288396);
  Py_VISIT(traverse_module_state->__pyx_float__2358242);
  Py_VISIT(traverse_module_state->__pyx_float__2384331);
  Py_VISIT(traverse_module_state->__pyx_float__2401294);
  Py_VISIT(traverse_module_state->__pyx_float__2424243);
  Py_VISIT(traverse_module_state->__pyx_float__2533176);
  Py_VISIT(traverse_module_state->__pyx_float__2712203);
  Py_VISIT(traverse_module_state->__pyx_float__9999999);
  Py_VISIT(traverse_module_state->__pyx_float_0_005149);
  Py_VISIT(traverse_module_state->__pyx_float_0_041194);
  Py_VISIT(traverse_module_state->__pyx_float_0_078279);
  Py_VISIT(traverse_module_state->__pyx_float_0_084037);
  Py_VISIT(traverse_module_state->__pyx_float_0_287333);
  Py_VISIT(traverse_module_state->__pyx_float_0_375696);
  Py_VISIT(traverse_module_state->__pyx_float__00502619);
  Py_VISIT(traverse_module_state->__pyx_float__03325916);
  Py_VISIT(traverse_module_state->__pyx_float__04077422);
  Py_VISIT(traverse_module_state->__pyx_float__010761867);
  Py_VISIT(traverse_module_state->__pyx_float__017735924);
  Py_VISIT(traverse_module_state->__pyx_float__025373955);
  Py_VISIT(traverse_module_state->__pyx_float__0008751673);
  Py_VISIT(traverse_module_state->__pyx_float__0016398069);
  Py_VISIT(traverse_module_state->__pyx_float__00001368088);
  Py_VISIT(traverse_module_state->__pyx_float__00010677413);
  Py_VISIT(traverse_module_state->__pyx_float__00036856041);
  Py_VISIT(traverse_module_state->__pyx_float__000001710716);
  Py_VISIT(traverse_module_state->__pyx_float__000008884663);
  Py_VISIT(traverse_module_state->__pyx_float__0000001161808);
  Py_VISIT(traverse_module_state->__pyx_float__00000000084824);
  Py_VISIT(traverse_module_state->__pyx_float_neg_1_);
  Py_VISIT(traverse_module_state->__pyx_float_neg_0_46);
  Py_VISIT(traverse_module_state->__pyx_float_neg__99999);
  Py_VISIT(traverse_module_state->__pyx_float_neg__047926);
  Py_VISIT(traverse_module_state->__pyx_float_neg__451935);
  Py_VISIT(traverse_module_state->__pyx_float_neg__999999);
  Py_VISIT(traverse_module_state->__pyx_float_neg_0_01168);
  Py_VISIT(traverse_module_state->__pyx_float_neg_0_05190);
  Py_VISIT(traverse_module_state->__pyx_float_neg_0_44716);
  Py_VISIT(traverse_module_state->__pyx_float_neg_0_49755);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0657853);
  Py_VISIT(traverse_module_state->__pyx_float_neg__1070542);
  Py_VISIT(traverse_module_state->__pyx_float_neg__1166907);
  Py_VISIT(traverse_module_state->__pyx_float_neg__3731348);
  Py_VISIT(traverse_module_state->__pyx_float_neg__3860122);
  Py_VISIT(traverse_module_state->__pyx_float_neg__4005545);
  Py_VISIT(traverse_module_state->__pyx_float_neg__4163269);
  Py_VISIT(traverse_module_state->__pyx_float_neg__4334446);
  Py_VISIT(traverse_module_state->__pyx_float_neg__00687337);
  Py_VISIT(traverse_module_state->__pyx_float_neg__01000904);
  Py_VISIT(traverse_module_state->__pyx_float_neg__08157508);
  Py_VISIT(traverse_module_state->__pyx_float_neg__09527918);
  Py_VISIT(traverse_module_state->__pyx_float_neg__000137555);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0000012807);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0000600859);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0001651660);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0007700127);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0020967027);
  Py_VISIT(traverse_module_state->__pyx_float_neg__0041524329);
  Py_VISIT(traverse_module_state->__pyx_float_neg__00001384355);
  Py_VISIT(traverse_module_state->__pyx_float_neg__000000193817);
  Py_VISIT(traverse_module_state->__pyx_float_neg__00000001027272);
  Py_VISIT(traverse_module_state->__pyx_int_0);
  Py_VISIT(traverse_module_state->__pyx_int_1);
  Py_VISIT(traverse_module_state->__pyx_int_2);
  Py_VISIT(traverse_module_state->__pyx_int_3);
  Py_VISIT(traverse_module_state->__pyx_int_4);
  Py_VISIT(traverse_module_state->__pyx_int_5);
  Py_VISIT(traverse_module_state->__pyx_int_6);
  Py_VISIT(traverse_module_state->__pyx_int_7);
  Py_VISIT(traverse_module_state->__pyx_int_8);
  Py_VISIT(traverse_module_state->__pyx_int_9);
  Py_VISIT(traverse_module_state->__pyx_int_10);
  Py_VISIT(traverse_module_state->__pyx_int_100);
  Py_VISIT(traverse_module_state->__pyx_int_128);
  Py_VISIT(traverse_module_state->__pyx_int_512);
  Py_VISIT(traverse_module_state->__pyx_int_4328264);
  Py_VISIT(traverse_module_state->__pyx_int_6431051);
  Py_VISIT(traverse_module_state->__pyx_int_7189371);
  Py_VISIT(traverse_module_state->__pyx_int_8089851);
  Py_VISIT(traverse_module_state->__pyx_int_8455662);
  Py_VISIT(traverse_module_state->__pyx_int_9011761);
  Py_VISIT(traverse_module_state->__pyx_int_9695810);
  Py_VISIT(traverse_module_state->__pyx_int_10165065);
  Py_VISIT(traverse_module_state->__pyx_int_14011399);
  Py_VISIT(traverse_module_state->__pyx_int_14828874);
  Py_VISIT(traverse_module_state->__pyx_int_14975952);
  Py_VISIT(traverse_module_state->__pyx_int_16473016);
  Py_VISIT(traverse_module_state->__pyx_int_17204615);
  Py_VISIT(traverse_module_state->__pyx_int_19846739);
  Py_VISIT(traverse_module_state->__pyx_int_22572774);
  Py_VISIT(traverse_module_state->__pyx_int_24494209);
  Py_VISIT(traverse_module_state->__pyx_int_25414310);
  Py_VISIT(traverse_module_state->__pyx_int_27861694);
  Py_VISIT(traverse_module_state->__pyx_int_28216571);
  Py_VISIT(traverse_module_state->__pyx_int_29168483);
  Py_VISIT(traverse_module_state->__pyx_int_29803235);
  Py_VISIT(traverse_module_state->__pyx_int_33150030);
  Py_VISIT(traverse_module_state->__pyx_int_35482709);
  Py_VISIT(traverse_module_state->__pyx_int_35949077);
  Py_VISIT(traverse_module_state->__pyx_int_36267824);
  Py_VISIT(traverse_module_state->__pyx_int_38153256);
  Py_VISIT(traverse_module_state->__pyx_int_38339493);
  Py_VISIT(traverse_module_state->__pyx_int_39153840);
  Py_VISIT(traverse_module_state->__pyx_int_43452093);
  Py_VISIT(traverse_module_state->__pyx_int_44313570);
  Py_VISIT(traverse_module_state->__pyx_int_48941122);
  Py_VISIT(traverse_module_state->__pyx_int_49475411);
  Py_VISIT(traverse_module_state->__pyx_int_56324287);
  Py_VISIT(traverse_module_state->__pyx_int_56550309);
  Py_VISIT(traverse_module_state->__pyx_int_57753464);
  Py_VISIT(traverse_module_state->__pyx_int_58026155);
  Py_VISIT(traverse_module_state->__pyx_int_60215003);
  Py_VISIT(traverse_module_state->__pyx_int_61524905);
  Py_VISIT(traverse_module_state->__pyx_int_62874594);
  Py_VISIT(traverse_module_state->__pyx_int_64927267);
  Py_VISIT(traverse_module_state->__pyx_int_75984122);
  Py_VISIT(traverse_module_state->__pyx_int_81718022);
  Py_VISIT(traverse_module_state->__pyx_int_82299867);
  Py_VISIT(traverse_module_state->__pyx_int_83731376);
  Py_VISIT(traverse_module_state->__pyx_int_83943461);
  Py_VISIT(traverse_module_state->__pyx_int_89407914);
  Py_VISIT(traverse_module_state->__pyx_int_90560465);
  Py_VISIT(traverse_module_state->__pyx_int_90806753);
  Py_VISIT(traverse_module_state->__pyx_int_93173464);
  Py_VISIT(traverse_module_state->__pyx_int_93234418);
  Py_VISIT(traverse_module_state->__pyx_int_94252077);
  Py_VISIT(traverse_module_state->__pyx_int_95048614);
  Py_VISIT(traverse_module_state->__pyx_int_96942813);
  Py_VISIT(traverse_module_state->__pyx_int_97846830);
  Py_VISIT(traverse_module_state->__pyx_int_99923986);
  Py_VISIT(traverse_module_state->__pyx_int_100967284);
  Py_VISIT(traverse_module_state->__pyx_int_101808146);
  Py_VISIT(traverse_module_state->__pyx_int_103203137);
  Py_VISIT(traverse_module_state->__pyx_int_103886015);
  Py_VISIT(traverse_module_state->__pyx_int_105646596);
  Py_VISIT(traverse_module_state->__pyx_int_105786433);
  Py_VISIT(traverse_module_state->__pyx_int_108802371);
  Py_VISIT(traverse_module_state->__pyx_int_109999513);
  Py_VISIT(traverse_module_state->__pyx_int_114002020);
  Py_VISIT(traverse_module_state->__pyx_int_117047762);
  Py_VISIT(traverse_module_state->__pyx_int_118435233);
  Py_VISIT(traverse_module_state->__pyx_int_120077725);
  Py_VISIT(traverse_module_state->__pyx_int_121268523);
  Py_VISIT(traverse_module_state->__pyx_int_121669262);
  Py_VISIT(traverse_module_state->__pyx_int_123870349);
  Py_VISIT(traverse_module_state->__pyx_int_127044661);
  Py_VISIT(traverse_module_state->__pyx_int_127565017);
  Py_VISIT(traverse_module_state->__pyx_int_131487801);
  Py_VISIT(traverse_module_state->__pyx_int_134697328);
  Py_VISIT(traverse_module_state->__pyx_int_134779209);
  Py_VISIT(traverse_module_state->__pyx_int_135827999);
  Py_VISIT(traverse_module_state->__pyx_int_136014572);
  Py_VISIT(traverse_module_state->__pyx_int_138134742);
  Py_VISIT(traverse_module_state->__pyx_int_139350794);
  Py_VISIT(traverse_module_state->__pyx_int_140324773);
  Py_VISIT(traverse_module_state->__pyx_int_143031090);
  Py_VISIT(traverse_module_state->__pyx_int_144439432);
  Py_VISIT(traverse_module_state->__pyx_int_146847058);
  Py_VISIT(traverse_module_state->__pyx_int_147363750);
  Py_VISIT(traverse_module_state->__pyx_int_148272179);
  Py_VISIT(traverse_module_state->__pyx_int_149852974);
  Py_VISIT(traverse_module_state->__pyx_int_150399202);
  Py_VISIT(traverse_module_state->__pyx_int_150798460);
  Py_VISIT(traverse_module_state->__pyx_int_150816533);
  Py_VISIT(traverse_module_state->__pyx_int_150941660);
  Py_VISIT(traverse_module_state->__pyx_int_152846879);
  Py_VISIT(traverse_module_state->__pyx_int_153277992);
  Py_VISIT(traverse_module_state->__pyx_int_155011743);
  Py_VISIT(traverse_module_state->__pyx_int_158694560);
  Py_VISIT(traverse_module_state->__pyx_int_160277609);
  Py_VISIT(traverse_module_state->__pyx_int_160593119);
  Py_VISIT(traverse_module_state->__pyx_int_165472083);
  Py_VISIT(traverse_module_state->__pyx_int_166068038);
  Py_VISIT(traverse_module_state->__pyx_int_169112353);
  Py_VISIT(traverse_module_state->__pyx_int_170471409);
  Py_VISIT(traverse_module_state->__pyx_int_171232032);
  Py_VISIT(traverse_module_state->__pyx_int_173110512);
  Py_VISIT(traverse_module_state->__pyx_int_174562005);
  Py_VISIT(traverse_module_state->__pyx_int_175203516);
  Py_VISIT(traverse_module_state->__pyx_int_177559970);
  Py_VISIT(traverse_module_state->__pyx_int_178322785);
  Py_VISIT(traverse_module_state->__pyx_int_178981920);
  Py_VISIT(traverse_module_state->__pyx_int_180736322);
  Py_VISIT(traverse_module_state->__pyx_int_184566456);
  Py_VISIT(traverse_module_state->__pyx_int_188214648);
  Py_VISIT(traverse_module_state->__pyx_int_190776647);
  Py_VISIT(traverse_module_state->__pyx_int_191989756);
  Py_VISIT(traverse_module_state->__pyx_int_193049109);
  Py_VISIT(traverse_module_state->__pyx_int_196047615);
  Py_VISIT(traverse_module_state->__pyx_int_199292263);
  Py_VISIT(traverse_module_state->__pyx_int_202207497);
  Py_VISIT(traverse_module_state->__pyx_int_203726100);
  Py_VISIT(traverse_module_state->__pyx_int_208169003);
  Py_VISIT(traverse_module_state->__pyx_int_209685500);
  Py_VISIT(traverse_module_state->__pyx_int_213175882);
  Py_VISIT(traverse_module_state->__pyx_int_217886057);
  Py_VISIT(traverse_module_state->__pyx_int_222419149);
  Py_VISIT(traverse_module_state->__pyx_int_227304315);
  Py_VISIT(traverse_module_state->__pyx_int_228825662);
  Py_VISIT(traverse_module_state->__pyx_int_231905918);
  Py_VISIT(traverse_module_state->__pyx_int_233007199);
  Py_VISIT(traverse_module_state->__pyx_int_234936116);
  Py_VISIT(traverse_module_state->__pyx_int_235111476);
  Py_VISIT(traverse_module_state->__pyx_int_236300599);
  Py_VISIT(traverse_module_state->__pyx_int_237498805);
  Py_VISIT(traverse_module_state->__pyx_int_238530126);
  Py_VISIT(traverse_module_state->__pyx_int_238750788);
  Py_VISIT(traverse_module_state->__pyx_int_241904987);
  Py_VISIT(traverse_module_state->__pyx_int_242608964);
  Py_VISIT(traverse_module_state->__pyx_int_243792574);
  Py_VISIT(traverse_module_state->__pyx_int_244411994);
  Py_VISIT(traverse_module_state->__pyx_int_246568357);
  Py_VISIT(traverse_module_state->__pyx_int_246844032);
  Py_VISIT(traverse_module_state->__pyx_int_254343081);
  Py_VISIT(traverse_module_state->__pyx_int_255285684);
  Py_VISIT(traverse_module_state->__pyx_int_255539553);
  Py_VISIT(traverse_module_state->__pyx_int_258104651);
  Py_VISIT(traverse_module_state->__pyx_int_263069812);
  Py_VISIT(traverse_module_state->__pyx_int_263863157);
  Py_VISIT(traverse_module_state->__pyx_int_266373226);
  Py_VISIT(traverse_module_state->__pyx_int_266943092);
  Py_VISIT(traverse_module_state->__pyx_int_267403128);
  Py_VISIT(traverse_module_state->__pyx_int_neg_1);
  Py_VISIT(traverse_module_state->__pyx_k__18);
  Py_VISIT(traverse_module_state->__pyx_k__19);
  Py_VISIT(traverse_module_state->__pyx_k__22);
  Py_VISIT(traverse_module_state->__pyx_k__23);
  Py_VISIT(traverse_module_state->__pyx_tuple__3);
  Py_VISIT(traverse_module_state->__pyx_tuple__5);
  Py_VISIT(traverse_module_state->__pyx_tuple__6);
  Py_VISIT(traverse_module_state->__pyx_tuple__7);
  Py_VISIT(traverse_module_state->__pyx_tuple__9);
  Py_VISIT(traverse_module_state->__pyx_tuple__13);
  Py_VISIT(traverse_module_state->__pyx_tuple__14);
  Py_VISIT(traverse_module_state->__pyx_tuple__17);
  Py_VISIT(traverse_module_state->__pyx_tuple__20);
  Py_VISIT(traverse_module_state->__pyx_tuple__24);
  Py_VISIT(traverse_module_state->__pyx_tuple__25);
  Py_VISIT(traverse_module_state->__pyx_tuple__26);
  Py_VISIT(traverse_module_state->__pyx_tuple__27);
  Py_VISIT(traverse_module_state->__pyx_tuple__28);
  Py_VISIT(traverse_module_state->__pyx_tuple__29);
  Py_VISIT(traverse_module_state->__pyx_tuple__30);
  Py_VISIT(traverse_module_state->__pyx_tuple__31);
  Py_VISIT(traverse_module_state->__pyx_tuple__32);
  Py_VISIT(traverse_module_state->__pyx_tuple__33);
  Py_VISIT(traverse_module_state->__pyx_tuple__34);
  Py_VISIT(traverse_module_state->__pyx_tuple__35);
  Py_VISIT(traverse_module_state->__pyx_tuple__36);
  Py_VISIT(traverse_module_state->__pyx_tuple__37);
  Py_VISIT(traverse_module_state->__pyx_tuple__38);
  Py_VISIT(traverse_module_state->__pyx_tuple__39);
  Py_VISIT(traverse_module_state->__pyx_tuple__40);
  Py_VISIT(traverse_module_state->__pyx_tuple__41);
  Py_VISIT(traverse_module_state->__pyx_tuple__42);
  Py_VISIT(traverse_module_state->__pyx_tuple__43);
  Py_VISIT(traverse_module_state->__pyx_tuple__44);
  Py_VISIT(traverse_module_state->__pyx_tuple__45);
  Py_VISIT(traverse_module_state->__pyx_tuple__46);
  Py_VISIT(traverse_module_state->__pyx_tuple__47);
  Py_VISIT(traverse_module_state->__pyx_tuple__48);
  Py_VISIT(traverse_module_state->__pyx_tuple__49);
  Py_VISIT(traverse_module_state->__pyx_tuple__50);
  Py_VISIT(traverse_module_state->__pyx_tuple__51);
  Py_VISIT(traverse_module_state->__pyx_tuple__52);
  Py_VISIT(traverse_module_state->__pyx_tuple__53);
  Py_VISIT(traverse_module_state->__pyx_tuple__54);
  Py_VISIT(traverse_module_state->__pyx_tuple__55);
  Py_VISIT(traverse_module_state->__pyx_tuple__56);
  Py_VISIT(traverse_module_state->__pyx_tuple__57);
  Py_VISIT(traverse_module_state->__pyx_tuple__58);
  Py_VISIT(traverse_module_state->__pyx_tuple__59);
  Py_VISIT(traverse_module_state->__pyx_tuple__60);
  Py_VISIT(traverse_module_state->__pyx_tuple__61);
  Py_VISIT(traverse_module_state->__pyx_tuple__62);
  Py_VISIT(traverse_module_state->__pyx_tuple__63);
  Py_VISIT(traverse_module_state->__pyx_tuple__64);
  Py_VISIT(traverse_module_state->__pyx_tuple__65);
  Py_VISIT(traverse_module_state->__pyx_tuple__66);
  Py_VISIT(traverse_module_state->__pyx_tuple__67);
  Py_VISIT(traverse_module_state->__pyx_tuple__68);
  Py_VISIT(traverse_module_state->__pyx_tuple__69);
  Py_VISIT(traverse_module_state->__pyx_tuple__70);
  Py_VISIT(traverse_module_state->__pyx_tuple__71);
  Py_VISIT(traverse_module_state->__pyx_tuple__72);
  Py_VISIT(traverse_module_state->__pyx_tuple__73);
  Py_VISIT(traverse_module_state->__pyx_tuple__74);
  Py_VISIT(traverse_module_state->__pyx_tuple__76);
  Py_VISIT(traverse_module_state->__pyx_tuple__77);
  Py_VISIT(traverse_module_state->__pyx_tuple__79);
  Py_VISIT(traverse_module_state->__pyx_tuple__82);
  Py_VISIT(traverse_module_state->__pyx_tuple__85);
  Py_VISIT(traverse_module_state->__pyx_tuple__87);
  Py_VISIT(traverse_module_state->__pyx_tuple__88);
  Py_VISIT(traverse_module_state->__pyx_tuple__90);
  Py_VISIT(traverse_module_state->__pyx_tuple__91);
  Py_VISIT(traverse_module_state->__pyx_tuple__93);
  Py_VISIT(traverse_module_state->__pyx_tuple__95);
  Py_VISIT(traverse_module_state->__pyx_tuple__98);
  Py_VISIT(traverse_module_state->__pyx_codeobj__4);
  Py_VISIT(traverse_module_state->__pyx_codeobj__8);
  Py_VISIT(traverse_module_state->__pyx_tuple__102);
  Py_VISIT(traverse_module_state->__pyx_tuple__104);
  Py_VISIT(traverse_module_state->__pyx_tuple__107);
  Py_VISIT(traverse_module_state->__pyx_tuple__111);
  Py_VISIT(traverse_module_state->__pyx_tuple__113);
  Py_VISIT(traverse_module_state->__pyx_tuple__116);
  Py_VISIT(traverse_module_state->__pyx_tuple__120);
  Py_VISIT(traverse_module_state->__pyx_tuple__122);
  Py_VISIT(traverse_module_state->__pyx_tuple__125);
  Py_VISIT(traverse_module_state->__pyx_tuple__129);
  Py_VISIT(traverse_module_state->__pyx_tuple__131);
  Py_VISIT(traverse_module_state->__pyx_tuple__133);
  Py_VISIT(traverse_module_state->__pyx_tuple__136);
  Py_VISIT(traverse_module_state->__pyx_tuple__140);
  Py_VISIT(traverse_module_state->__pyx_tuple__142);
  Py_VISIT(traverse_module_state->__pyx_tuple__145);
  Py_VISIT(traverse_module_state->__pyx_tuple__149);
  Py_VISIT(traverse_module_state->__pyx_tuple__151);
  Py_VISIT(traverse_module_state->__pyx_tuple__154);
  Py_VISIT(traverse_module_state->__pyx_tuple__158);
  Py_VISIT(traverse_module_state->__pyx_tuple__160);
  Py_VISIT(traverse_module_state->__pyx_tuple__163);
  Py_VISIT(traverse_module_state->__pyx_tuple__166);
  Py_VISIT(traverse_module_state->__pyx_tuple__168);
  Py_VISIT(traverse_module_state->__pyx_tuple__170);
  Py_VISIT(traverse_module_state->__pyx_tuple__173);
  Py_VISIT(traverse_module_state->__pyx_tuple__178);
  Py_VISIT(traverse_module_state->__pyx_tuple__181);
  Py_VISIT(traverse_module_state->__pyx_tuple__186);
  Py_VISIT(traverse_module_state->__pyx_tuple__189);
  Py_VISIT(traverse_module_state->__pyx_tuple__194);
  Py_VISIT(traverse_module_state->__pyx_tuple__196);
  Py_VISIT(traverse_module_state->__pyx_tuple__199);
  Py_VISIT(traverse_module_state->__pyx_tuple__204);
  Py_VISIT(traverse_module_state->__pyx_tuple__206);
  Py_VISIT(traverse_module_state->__pyx_tuple__208);
  Py_VISIT(traverse_module_state->__pyx_tuple__210);
  Py_VISIT(traverse_module_state->__pyx_tuple__213);
  Py_VISIT(traverse_module_state->__pyx_tuple__217);
  Py_VISIT(traverse_module_state->__pyx_tuple__219);
  Py_VISIT(traverse_module_state->__pyx_tuple__222);
  Py_VISIT(traverse_module_state->__pyx_tuple__223);
  Py_VISIT(traverse_module_state->__pyx_tuple__225);
  Py_VISIT(traverse_module_state->__pyx_tuple__228);
  Py_VISIT(traverse_module_state->__pyx_tuple__230);
  Py_VISIT(traverse_module_state->__pyx_tuple__232);
  Py_VISIT(traverse_module_state->__pyx_tuple__233);
  Py_VISIT(traverse_module_state->__pyx_tuple__235);
  Py_VISIT(traverse_module_state->__pyx_tuple__238);
  Py_VISIT(traverse_module_state->__pyx_tuple__240);
  Py_VISIT(traverse_module_state->__pyx_tuple__244);
  Py_VISIT(traverse_module_state->__pyx_tuple__246);
  Py_VISIT(traverse_module_state->__pyx_tuple__248);
  Py_VISIT(traverse_module_state->__pyx_tuple__251);
  Py_VISIT(traverse_module_state->__pyx_tuple__256);
  Py_VISIT(traverse_module_state->__pyx_tuple__259);
  Py_VISIT(traverse_module_state->__pyx_tuple__264);
  Py_VISIT(traverse_module_state->__pyx_tuple__267);
  Py_VISIT(traverse_module_state->__pyx_tuple__272);
  Py_VISIT(traverse_module_state->__pyx_tuple__275);
  Py_VISIT(traverse_module_state->__pyx_tuple__280);
  Py_VISIT(traverse_module_state->__pyx_tuple__283);
  Py_VISIT(traverse_module_state->__pyx_tuple__286);
  Py_VISIT(traverse_module_state->__pyx_tuple__289);
  Py_VISIT(traverse_module_state->__pyx_tuple__292);
  Py_VISIT(traverse_module_state->__pyx_tuple__294);
  Py_VISIT(traverse_module_state->__pyx_tuple__297);
  Py_VISIT(traverse_module_state->__pyx_tuple__299);
  Py_VISIT(traverse_module_state->__pyx_tuple__301);
  Py_VISIT(traverse_module_state->__pyx_tuple__303);
  Py_VISIT(traverse_module_state->__pyx_tuple__306);
  Py_VISIT(traverse_module_state->__pyx_tuple__310);
  Py_VISIT(traverse_module_state->__pyx_tuple__312);
  Py_VISIT(traverse_module_state->__pyx_tuple__315);
  Py_VISIT(traverse_module_state->__pyx_tuple__319);
  Py_VISIT(traverse_module_state->__pyx_tuple__321);
  Py_VISIT(traverse_module_state->__pyx_tuple__324);
  Py_VISIT(traverse_module_state->__pyx_tuple__326);
  Py_VISIT(traverse_module_state->__pyx_tuple__330);
  Py_VISIT(traverse_module_state->__pyx_tuple__332);
  Py_VISIT(traverse_module_state->__pyx_tuple__335);
  Py_VISIT(traverse_module_state->__pyx_tuple__339);
  Py_VISIT(traverse_module_state->__pyx_tuple__341);
  Py_VISIT(traverse_module_state->__pyx_tuple__344);
  Py_VISIT(traverse_module_state->__pyx_tuple__348);
  Py_VISIT(traverse_module_state->__pyx_tuple__350);
  Py_VISIT(traverse_module_state->__pyx_tuple__353);
  Py_VISIT(traverse_module_state->__pyx_tuple__357);
  Py_VISIT(traverse_module_state->__pyx_tuple__359);
  Py_VISIT(traverse_module_state->__pyx_tuple__362);
  Py_VISIT(traverse_module_state->__pyx_tuple__366);
  Py_VISIT(traverse_module_state->__pyx_tuple__368);
  Py_VISIT(traverse_module_state->__pyx_tuple__371);
  Py_VISIT(traverse_module_state->__pyx_tuple__375);
  Py_VISIT(traverse_module_state->__pyx_tuple__377);
  Py_VISIT(traverse_module_state->__pyx_tuple__380);
  Py_VISIT(traverse_module_state->__pyx_tuple__384);
  Py_VISIT(traverse_module_state->__pyx_tuple__386);
  Py_VISIT(traverse_module_state->__pyx_tuple__389);
  Py_VISIT(traverse_module_state->__pyx_tuple__393);
  Py_VISIT(traverse_module_state->__pyx_tuple__395);
  Py_VISIT(traverse_module_state->__pyx_tuple__398);
  Py_VISIT(traverse_module_state->__pyx_tuple__402);
  Py_VISIT(traverse_module_state->__pyx_tuple__404);
  Py_VISIT(traverse_module_state->__pyx_tuple__407);
  Py_VISIT(traverse_module_state->__pyx_tuple__411);
  Py_VISIT(traverse_module_state->__pyx_tuple__413);
  Py_VISIT(traverse_module_state->__pyx_tuple__416);
  Py_VISIT(traverse_module_state->__pyx_tuple__420);
  Py_VISIT(traverse_module_state->__pyx_tuple__422);
  Py_VISIT(traverse_module_state->__pyx_tuple__425);
  Py_VISIT(traverse_module_state->__pyx_tuple__428);
  Py_VISIT(traverse_module_state->__pyx_tuple__430);
  Py_VISIT(traverse_module_state->__pyx_tuple__432);
  Py_VISIT(traverse_module_state->__pyx_tuple__435);
  Py_VISIT(traverse_module_state->__pyx_tuple__438);
  Py_VISIT(traverse_module_state->__pyx_tuple__440);
  Py_VISIT(traverse_module_state->__pyx_tuple__442);
  Py_VISIT(traverse_module_state->__pyx_tuple__445);
  Py_VISIT(traverse_module_state->__pyx_tuple__450);
  Py_VISIT(traverse_module_state->__pyx_tuple__453);
  Py_VISIT(traverse_module_state->__pyx_tuple__456);
  Py_VISIT(traverse_module_state->__pyx_tuple__458);
  Py_VISIT(traverse_module_state->__pyx_tuple__460);
  Py_VISIT(traverse_module_state->__pyx_tuple__463);
  Py_VISIT(traverse_module_state->__pyx_tuple__467);
  Py_VISIT(traverse_module_state->__pyx_tuple__469);
  Py_VISIT(traverse_module_state->__pyx_tuple__472);
  Py_VISIT(traverse_module_state->__pyx_tuple__476);
  Py_VISIT(traverse_module_state->__pyx_tuple__478);
  Py_VISIT(traverse_module_state->__pyx_tuple__481);
  Py_VISIT(traverse_module_state->__pyx_tuple__485);
  Py_VISIT(traverse_module_state->__pyx_tuple__487);
  Py_VISIT(traverse_module_state->__pyx_tuple__490);
  Py_VISIT(traverse_module_state->__pyx_tuple__495);
  Py_VISIT(traverse_module_state->__pyx_tuple__498);
  Py_VISIT(traverse_module_state->__pyx_tuple__501);
  Py_VISIT(traverse_module_state->__pyx_tuple__503);
  Py_VISIT(traverse_module_state->__pyx_tuple__505);
  Py_VISIT(traverse_module_state->__pyx_tuple__508);
  Py_VISIT(traverse_module_state->__pyx_tuple__512);
  Py_VISIT(traverse_module_state->__pyx_tuple__514);
  Py_VISIT(traverse_module_state->__pyx_tuple__517);
  Py_VISIT(traverse_module_state->__pyx_tuple__521);
  Py_VISIT(traverse_module_state->__pyx_tuple__523);
  Py_VISIT(traverse_module_state->__pyx_tuple__526);
  Py_VISIT(traverse_module_state->__pyx_tuple__528);
  Py_VISIT(traverse_module_state->__pyx_tuple__530);
  Py_VISIT(traverse_module_state->__pyx_tuple__533);
  Py_VISIT(traverse_module_state->__pyx_tuple__535);
  Py_VISIT(traverse_module_state->__pyx_tuple__537);
  Py_VISIT(traverse_module_state->__pyx_tuple__539);
  Py_VISIT(traverse_module_state->__pyx_tuple__541);
  Py_VISIT(traverse_module_state->__pyx_tuple__544);
  Py_VISIT(traverse_module_state->__pyx_tuple__548);
  Py_VISIT(traverse_module_state->__pyx_tuple__550);
  Py_VISIT(traverse_module_state->__pyx_tuple__553);
  Py_VISIT(traverse_module_state->__pyx_tuple__556);
  Py_VISIT(traverse_module_state->__pyx_tuple__558);
  Py_VISIT(traverse_module_state->__pyx_tuple__560);
  Py_VISIT(traverse_module_state->__pyx_tuple__563);
  Py_VISIT(traverse_module_state->__pyx_tuple__566);
  Py_VISIT(traverse_module_state->__pyx_tuple__569);
  Py_VISIT(traverse_module_state->__pyx_tuple__572);
  Py_VISIT(traverse_module_state->__pyx_tuple__575);
  Py_VISIT(traverse_module_state->__pyx_tuple__577);
  Py_VISIT(traverse_module_state->__pyx_tuple__579);
  Py_VISIT(traverse_module_state->__pyx_tuple__582);
  Py_VISIT(traverse_module_state->__pyx_tuple__586);
  Py_VISIT(traverse_module_state->__pyx_tuple__588);
  Py_VISIT(traverse_module_state->__pyx_tuple__591);
  Py_VISIT(traverse_module_state->__pyx_tuple__594);
  Py_VISIT(traverse_module_state->__pyx_tuple__596);
  Py_VISIT(traverse_module_state->__pyx_tuple__598);
  Py_VISIT(traverse_module_state->__pyx_tuple__601);
  Py_VISIT(traverse_module_state->__pyx_tuple__606);
  Py_VISIT(traverse_module_state->__pyx_tuple__609);
  Py_VISIT(traverse_module_state->__pyx_tuple__612);
  Py_VISIT(traverse_module_state->__pyx_tuple__614);
  Py_VISIT(traverse_module_state->__pyx_tuple__616);
  Py_VISIT(traverse_module_state->__pyx_tuple__619);
  Py_VISIT(traverse_module_state->__pyx_tuple__623);
  Py_VISIT(traverse_module_state->__pyx_tuple__625);
  Py_VISIT(traverse_module_state->__pyx_tuple__628);
  Py_VISIT(traverse_module_state->__pyx_tuple__629);
  Py_VISIT(traverse_module_state->__pyx_tuple__635);
  Py_VISIT(traverse_module_state->__pyx_tuple__638);
  Py_VISIT(traverse_module_state->__pyx_tuple__641);
  Py_VISIT(traverse_module_state->__pyx_tuple__643);
  Py_VISIT(traverse_module_state->__pyx_tuple__645);
  Py_VISIT(traverse_module_state->__pyx_tuple__648);
  Py_VISIT(traverse_module_state->__pyx_tuple__654);
  Py_VISIT(traverse_module_state->__pyx_tuple__657);
  Py_VISIT(traverse_module_state->__pyx_tuple__662);
  Py_VISIT(traverse_module_state->__pyx_tuple__664);
  Py_VISIT(traverse_module_state->__pyx_tuple__667);
  Py_VISIT(traverse_module_state->__pyx_tuple__670);
  Py_VISIT(traverse_module_state->__pyx_tuple__672);
  Py_VISIT(traverse_module_state->__pyx_tuple__674);
  Py_VISIT(traverse_module_state->__pyx_tuple__677);
  Py_VISIT(traverse_module_state->__pyx_tuple__681);
  Py_VISIT(traverse_module_state->__pyx_tuple__683);
  Py_VISIT(traverse_module_state->__pyx_tuple__686);
  Py_VISIT(traverse_module_state->__pyx_tuple__690);
  Py_VISIT(traverse_module_state->__pyx_tuple__692);
  Py_VISIT(traverse_module_state->__pyx_tuple__695);
  Py_VISIT(traverse_module_state->__pyx_tuple__698);
  Py_VISIT(traverse_module_state->__pyx_tuple__700);
  Py_VISIT(traverse_module_state->__pyx_tuple__702);
  Py_VISIT(traverse_module_state->__pyx_tuple__704);
  Py_VISIT(traverse_module_state->__pyx_tuple__708);
  Py_VISIT(traverse_module_state->__pyx_tuple__711);
  Py_VISIT(traverse_module_state->__pyx_tuple__713);
  Py_VISIT(traverse_module_state->__pyx_tuple__715);
  Py_VISIT(traverse_module_state->__pyx_tuple__717);
  Py_VISIT(traverse_module_state->__pyx_tuple__721);
  Py_VISIT(traverse_module_state->__pyx_tuple__724);
  Py_VISIT(traverse_module_state->__pyx_tuple__728);
  Py_VISIT(traverse_module_state->__pyx_tuple__730);
  Py_VISIT(traverse_module_state->__pyx_tuple__733);
  Py_VISIT(traverse_module_state->__pyx_tuple__738);
  Py_VISIT(traverse_module_state->__pyx_tuple__741);
  Py_VISIT(traverse_module_state->__pyx_tuple__744);
  Py_VISIT(traverse_module_state->__pyx_tuple__746);
  Py_VISIT(traverse_module_state->__pyx_tuple__748);
  Py_VISIT(traverse_module_state->__pyx_tuple__751);
  Py_VISIT(traverse_module_state->__pyx_tuple__754);
  Py_VISIT(traverse_module_state->__pyx_tuple__756);
  Py_VISIT(traverse_module_state->__pyx_tuple__758);
  Py_VISIT(traverse_module_state->__pyx_tuple__761);
  Py_VISIT(traverse_module_state->__pyx_tuple__764);
  Py_VISIT(traverse_module_state->__pyx_tuple__767);
  Py_VISIT(traverse_module_state->__pyx_tuple__770);
  Py_VISIT(traverse_module_state->__pyx_tuple__775);
  Py_VISIT(traverse_module_state->__pyx_tuple__777);
  Py_VISIT(traverse_module_state->__pyx_tuple__779);
  Py_VISIT(traverse_module_state->__pyx_tuple__783);
  Py_VISIT(traverse_module_state->__pyx_tuple__784);
  Py_VISIT(traverse_module_state->__pyx_tuple__786);
  Py_VISIT(traverse_module_state->__pyx_tuple__789);
  Py_VISIT(traverse_module_state->__pyx_tuple__794);
  Py_VISIT(traverse_module_state->__pyx_tuple__797);
  Py_VISIT(traverse_module_state->__pyx_tuple__802);
  Py_VISIT(traverse_module_state->__pyx_tuple__808);
  Py_VISIT(traverse_module_state->__pyx_tuple__811);
  Py_VISIT(traverse_module_state->__pyx_tuple__816);
  Py_VISIT(traverse_module_state->__pyx_tuple__819);
  Py_VISIT(traverse_module_state->__pyx_tuple__824);
  Py_VISIT(traverse_module_state->__pyx_tuple__826);
  Py_VISIT(traverse_module_state->__pyx_tuple__829);
  Py_VISIT(traverse_module_state->__pyx_tuple__834);
  Py_VISIT(traverse_module_state->__pyx_tuple__838);
  Py_VISIT(traverse_module_state->__pyx_tuple__840);
  Py_VISIT(traverse_module_state->__pyx_tuple__842);
  Py_VISIT(traverse_module_state->__pyx_tuple__844);
  Py_VISIT(traverse_module_state->__pyx_tuple__845);
  Py_VISIT(traverse_module_state->__pyx_tuple__849);
  Py_VISIT(traverse_module_state->__pyx_tuple__851);
  Py_VISIT(traverse_module_state->__pyx_tuple__854);
  Py_VISIT(traverse_module_state->__pyx_codeobj__10);
  Py_VISIT(traverse_module_state->__pyx_codeobj__11);
  Py_VISIT(traverse_module_state->__pyx_codeobj__12);
  Py_VISIT(traverse_module_state->__pyx_codeobj__15);
  Py_VISIT(traverse_module_state->__pyx_codeobj__16);
  Py_VISIT(traverse_module_state->__pyx_codeobj__21);
  Py_VISIT(traverse_module_state->__pyx_codeobj__75);
  Py_VISIT(traverse_module_state->__pyx_codeobj__78);
  Py_VISIT(traverse_module_state->__pyx_codeobj__80);
  Py_VISIT(traverse_module_state->__pyx_codeobj__81);
  Py_VISIT(traverse_module_state->__pyx_codeobj__83);
  Py_VISIT(traverse_module_state->__pyx_codeobj__84);
  Py_VISIT(traverse_module_state->__pyx_codeobj__86);
  Py_VISIT(traverse_module_state->__pyx_codeobj__89);
  Py_VISIT(traverse_module_state->__pyx_codeobj__92);
  Py_VISIT(traverse_module_state->__pyx_codeobj__94);
  Py_VISIT(traverse_module_state->__pyx_codeobj__96);
  Py_VISIT(traverse_module_state->__pyx_codeobj__97);
  Py_VISIT(traverse_module_state->__pyx_codeobj__99);
  Py_VISIT(traverse_module_state->__pyx_codeobj__100);
  Py_VISIT(traverse_module_state->__pyx_codeobj__101);
  Py_VISIT(traverse_module_state->__pyx_codeobj__103);
  Py_VISIT(traverse_module_state->__pyx_codeobj__105);
  Py_VISIT(traverse_module_state->__pyx_codeobj__106);
  Py_VISIT(traverse_module_state->__pyx_codeobj__108);
  Py_VISIT(traverse_module_state->__pyx_codeobj__109);
  Py_VISIT(traverse_module_state->__pyx_codeobj__110);
  Py_VISIT(traverse_module_state->__pyx_codeobj__112);
  Py_VISIT(traverse_module_state->__pyx_codeobj__114);
  Py_VISIT(traverse_module_state->__pyx_codeobj__115);
  Py_VISIT(traverse_module_state->__pyx_codeobj__117);
  Py_VISIT(traverse_module_state->__pyx_codeobj__118);
  Py_VISIT(traverse_module_state->__pyx_codeobj__119);
  Py_VISIT(traverse_module_state->__pyx_codeobj__121);
  Py_VISIT(traverse_module_state->__pyx_codeobj__123);
  Py_VISIT(traverse_module_state->__pyx_codeobj__124);
  Py_VISIT(traverse_module_state->__pyx_codeobj__126);
  Py_VISIT(traverse_module_state->__pyx_codeobj__127);
  Py_VISIT(traverse_module_state->__pyx_codeobj__128);
  Py_VISIT(traverse_module_state->__pyx_codeobj__130);
  Py_VISIT(traverse_module_state->__pyx_codeobj__132);
  Py_VISIT(traverse_module_state->__pyx_codeobj__134);
  Py_VISIT(traverse_module_state->__pyx_codeobj__135);
  Py_VISIT(traverse_module_state->__pyx_codeobj__137);
  Py_VISIT(traverse_module_state->__pyx_codeobj__138);
  Py_VISIT(traverse_module_state->__pyx_codeobj__139);
  Py_VISIT(traverse_module_state->__pyx_codeobj__141);
  Py_VISIT(traverse_module_state->__pyx_codeobj__143);
  Py_VISIT(traverse_module_state->__pyx_codeobj__144);
  Py_VISIT(traverse_module_state->__pyx_codeobj__146);
  Py_VISIT(traverse_module_state->__pyx_codeobj__147);
  Py_VISIT(traverse_module_state->__pyx_codeobj__148);
  Py_VISIT(traverse_module_state->__pyx_codeobj__150);
  Py_VISIT(traverse_module_state->__pyx_codeobj__152);
  Py_VISIT(traverse_module_state->__pyx_codeobj__153);
  Py_VISIT(traverse_module_state->__pyx_codeobj__155);
  Py_VISIT(traverse_module_state->__pyx_codeobj__156);
  Py_VISIT(traverse_module_state->__pyx_codeobj__157);
  Py_VISIT(traverse_module_state->__pyx_codeobj__159);
  Py_VISIT(traverse_module_state->__pyx_codeobj__161);
  Py_VISIT(traverse_module_state->__pyx_codeobj__162);
  Py_VISIT(traverse_module_state->__pyx_codeobj__164);
  Py_VISIT(traverse_module_state->__pyx_codeobj__165);
  Py_VISIT(traverse_module_state->__pyx_codeobj__167);
  Py_VISIT(traverse_module_state->__pyx_codeobj__169);
  Py_VISIT(traverse_module_state->__pyx_codeobj__171);
  Py_VISIT(traverse_module_state->__pyx_codeobj__172);
  Py_VISIT(traverse_module_state->__pyx_codeobj__174);
  Py_VISIT(traverse_module_state->__pyx_codeobj__175);
  Py_VISIT(traverse_module_state->__pyx_codeobj__176);
  Py_VISIT(traverse_module_state->__pyx_codeobj__177);
  Py_VISIT(traverse_module_state->__pyx_codeobj__179);
  Py_VISIT(traverse_module_state->__pyx_codeobj__180);
  Py_VISIT(traverse_module_state->__pyx_codeobj__182);
  Py_VISIT(traverse_module_state->__pyx_codeobj__183);
  Py_VISIT(traverse_module_state->__pyx_codeobj__184);
  Py_VISIT(traverse_module_state->__pyx_codeobj__185);
  Py_VISIT(traverse_module_state->__pyx_codeobj__187);
  Py_VISIT(traverse_module_state->__pyx_codeobj__188);
  Py_VISIT(traverse_module_state->__pyx_codeobj__190);
  Py_VISIT(traverse_module_state->__pyx_codeobj__191);
  Py_VISIT(traverse_module_state->__pyx_codeobj__192);
  Py_VISIT(traverse_module_state->__pyx_codeobj__193);
  Py_VISIT(traverse_module_state->__pyx_codeobj__195);
  Py_VISIT(traverse_module_state->__pyx_codeobj__197);
  Py_VISIT(traverse_module_state->__pyx_codeobj__198);
  Py_VISIT(traverse_module_state->__pyx_codeobj__200);
  Py_VISIT(traverse_module_state->__pyx_codeobj__201);
  Py_VISIT(traverse_module_state->__pyx_codeobj__202);
  Py_VISIT(traverse_module_state->__pyx_codeobj__203);
  Py_VISIT(traverse_module_state->__pyx_codeobj__205);
  Py_VISIT(traverse_module_state->__pyx_codeobj__207);
  Py_VISIT(traverse_module_state->__pyx_codeobj__209);
  Py_VISIT(traverse_module_state->__pyx_codeobj__211);
  Py_VISIT(traverse_module_state->__pyx_codeobj__212);
  Py_VISIT(traverse_module_state->__pyx_codeobj__214);
  Py_VISIT(traverse_module_state->__pyx_codeobj__215);
  Py_VISIT(traverse_module_state->__pyx_codeobj__216);
  Py_VISIT(traverse_module_state->__pyx_codeobj__218);
  Py_VISIT(traverse_module_state->__pyx_codeobj__220);
  Py_VISIT(traverse_module_state->__pyx_codeobj__221);
  Py_VISIT(traverse_module_state->__pyx_codeobj__224);
  Py_VISIT(traverse_module_state->__pyx_codeobj__226);
  Py_VISIT(traverse_module_state->__pyx_codeobj__227);
  Py_VISIT(traverse_module_state->__pyx_codeobj__229);
  Py_VISIT(traverse_module_state->__pyx_codeobj__231);
  Py_VISIT(traverse_module_state->__pyx_codeobj__234);
  Py_VISIT(traverse_module_state->__pyx_codeobj__236);
  Py_VISIT(traverse_module_state->__pyx_codeobj__237);
  Py_VISIT(traverse_module_state->__pyx_codeobj__239);
  Py_VISIT(traverse_module_state->__pyx_codeobj__241);
  Py_VISIT(traverse_module_state->__pyx_codeobj__242);
  Py_VISIT(traverse_module_state->__pyx_codeobj__243);
  Py_VISIT(traverse_module_state->__pyx_codeobj__245);
  Py_VISIT(traverse_module_state->__pyx_codeobj__247);
  Py_VISIT(traverse_module_state->__pyx_codeobj__249);
  Py_VISIT(traverse_module_state->__pyx_codeobj__250);
  Py_VISIT(traverse_module_state->__pyx_codeobj__252);
  Py_VISIT(traverse_module_state->__pyx_codeobj__253);
  Py_VISIT(traverse_module_state->__pyx_codeobj__254);
  Py_VISIT(traverse_module_state->__pyx_codeobj__255);
  Py_VISIT(traverse_module_state->__pyx_codeobj__257);
  Py_VISIT(traverse_module_state->__pyx_codeobj__258);
  Py_VISIT(traverse_module_state->__pyx_codeobj__260);
  Py_VISIT(traverse_module_state->__pyx_codeobj__261);
  Py_VISIT(traverse_module_state->__pyx_codeobj__262);
  Py_VISIT(traverse_module_state->__pyx_codeobj__263);
  Py_VISIT(traverse_module_state->__pyx_codeobj__265);
  Py_VISIT(traverse_module_state->__pyx_codeobj__266);
  Py_VISIT(traverse_module_state->__pyx_codeobj__268);
  Py_VISIT(traverse_module_state->__pyx_codeobj__269);
  Py_VISIT(traverse_module_state->__pyx_codeobj__270);
  Py_VISIT(traverse_module_state->__pyx_codeobj__271);
  Py_VISIT(traverse_module_state->__pyx_codeobj__273);
  Py_VISIT(traverse_module_state->__pyx_codeobj__274);
  Py_VISIT(traverse_module_state->__pyx_codeobj__276);
  Py_VISIT(traverse_module_state->__pyx_codeobj__277);
  Py_VISIT(traverse_module_state->__pyx_codeobj__278);
  Py_VISIT(traverse_module_state->__pyx_codeobj__279);
  Py_VISIT(traverse_module_state->__pyx_codeobj__281);
  Py_VISIT(traverse_module_state->__pyx_codeobj__282);
  Py_VISIT(traverse_module_state->__pyx_codeobj__284);
  Py_VISIT(traverse_module_state->__pyx_codeobj__285);
  Py_VISIT(traverse_module_state->__pyx_codeobj__287);
  Py_VISIT(traverse_module_state->__pyx_codeobj__288);
  Py_VISIT(traverse_module_state->__pyx_codeobj__290);
  Py_VISIT(traverse_module_state->__pyx_codeobj__291);
  Py_VISIT(traverse_module_state->__pyx_codeobj__293);
  Py_VISIT(traverse_module_state->__pyx_codeobj__295);
  Py_VISIT(traverse_module_state->__pyx_codeobj__296);
  Py_VISIT(traverse_module_state->__pyx_codeobj__298);
  Py_VISIT(traverse_module_state->__pyx_codeobj__300);
  Py_VISIT(traverse_module_state->__pyx_codeobj__302);
  Py_VISIT(traverse_module_state->__pyx_codeobj__304);
  Py_VISIT(traverse_module_state->__pyx_codeobj__305);
  Py_VISIT(traverse_module_state->__pyx_codeobj__307);
  Py_VISIT(traverse_module_state->__pyx_codeobj__308);
  Py_VISIT(traverse_module_state->__pyx_codeobj__309);
  Py_VISIT(traverse_module_state->__pyx_codeobj__311);
  Py_VISIT(traverse_module_state->__pyx_codeobj__313);
  Py_VISIT(traverse_module_state->__pyx_codeobj__314);
  Py_VISIT(traverse_module_state->__pyx_codeobj__316);
  Py_VISIT(traverse_module_state->__pyx_codeobj__317);
  Py_VISIT(traverse_module_state->__pyx_codeobj__318);
  Py_VISIT(traverse_module_state->__pyx_codeobj__320);
  Py_VISIT(traverse_module_state->__pyx_codeobj__322);
  Py_VISIT(traverse_module_state->__pyx_codeobj__323);
  Py_VISIT(traverse_module_state->__pyx_codeobj__325);
  Py_VISIT(traverse_module_state->__pyx_codeobj__327);
  Py_VISIT(traverse_module_state->__pyx_codeobj__328);
  Py_VISIT(traverse_module_state->__pyx_codeobj__329);
  Py_VISIT(traverse_module_state->__pyx_codeobj__331);
  Py_VISIT(traverse_module_state->__pyx_codeobj__333);
  Py_VISIT(traverse_module_state->__pyx_codeobj__334);
  Py_VISIT(traverse_module_state->__pyx_codeobj__336);
  Py_VISIT(traverse_module_state->__pyx_codeobj__337);
  Py_VISIT(traverse_module_state->__pyx_codeobj__338);
  Py_VISIT(traverse_module_state->__pyx_codeobj__340);
  Py_VISIT(traverse_module_state->__pyx_codeobj__342);
  Py_VISIT(traverse_module_state->__pyx_codeobj__343);
  Py_VISIT(traverse_module_state->__pyx_codeobj__345);
  Py_VISIT(traverse_module_state->__pyx_codeobj__346);
  Py_VISIT(traverse_module_state->__pyx_codeobj__347);
  Py_VISIT(traverse_module_state->__pyx_codeobj__349);
  Py_VISIT(traverse_module_state->__pyx_codeobj__351);
  Py_VISIT(traverse_module_state->__pyx_codeobj__352);
  Py_VISIT(traverse_module_state->__pyx_codeobj__354);
  Py_VISIT(traverse_module_state->__pyx_codeobj__355);
  Py_VISIT(traverse_module_state->__pyx_codeobj__356);
  Py_VISIT(traverse_module_state->__pyx_codeobj__358);
  Py_VISIT(traverse_module_state->__pyx_codeobj__360);
  Py_VISIT(traverse_module_state->__pyx_codeobj__361);
  Py_VISIT(traverse_module_state->__pyx_codeobj__363);
  Py_VISIT(traverse_module_state->__pyx_codeobj__364);
  Py_VISIT(traverse_module_state->__pyx_codeobj__365);
  Py_VISIT(traverse_module_state->__pyx_codeobj__367);
  Py_VISIT(traverse_module_state->__pyx_codeobj__369);
  Py_VISIT(traverse_module_state->__pyx_codeobj__370);
  Py_VISIT(traverse_module_state->__pyx_codeobj__372);
  Py_VISIT(traverse_module_state->__pyx_codeobj__373);
  Py_VISIT(traverse_module_state->__pyx_codeobj__374);
  Py_VISIT(traverse_module_state->__pyx_codeobj__376);
  Py_VISIT(traverse_module_state->__pyx_codeobj__378);
  Py_VISIT(traverse_module_state->__pyx_codeobj__379);
  Py_VISIT(traverse_module_state->__pyx_codeobj__381);
  Py_VISIT(traverse_module_state->__pyx_codeobj__382);
  Py_VISIT(traverse_module_state->__pyx_codeobj__383);
  Py_VISIT(traverse_module_state->__pyx_codeobj__385);
  Py_VISIT(traverse_module_state->__pyx_codeobj__387);
  Py_VISIT(traverse_module_state->__pyx_codeobj__388);
  Py_VISIT(traverse_module_state->__pyx_codeobj__390);
  Py_VISIT(traverse_module_state->__pyx_codeobj__391);
  Py_VISIT(traverse_module_state->__pyx_codeobj__392);
  Py_VISIT(traverse_module_state->__pyx_codeobj__394);
  Py_VISIT(traverse_module_state->__pyx_codeobj__396);
  Py_VISIT(traverse_module_state->__pyx_codeobj__397);
  Py_VISIT(traverse_module_state->__pyx_codeobj__399);
  Py_VISIT(traverse_module_state->__pyx_codeobj__400);
  Py_VISIT(traverse_module_state->__pyx_codeobj__401);
  Py_VISIT(traverse_module_state->__pyx_codeobj__403);
  Py_VISIT(traverse_module_state->__pyx_codeobj__405);
  Py_VISIT(traverse_module_state->__pyx_codeobj__406);
  Py_VISIT(traverse_module_state->__pyx_codeobj__408);
  Py_VISIT(traverse_module_state->__pyx_codeobj__409);
  Py_VISIT(traverse_module_state->__pyx_codeobj__410);
  Py_VISIT(traverse_module_state->__pyx_codeobj__412);
  Py_VISIT(traverse_module_state->__pyx_codeobj__414);
  Py_VISIT(traverse_module_state->__pyx_codeobj__415);
  Py_VISIT(traverse_module_state->__pyx_codeobj__417);
  Py_VISIT(traverse_module_state->__pyx_codeobj__418);
  Py_VISIT(traverse_module_state->__pyx_codeobj__419);
  Py_VISIT(traverse_module_state->__pyx_codeobj__421);
  Py_VISIT(traverse_module_state->__pyx_codeobj__423);
  Py_VISIT(traverse_module_state->__pyx_codeobj__424);
  Py_VISIT(traverse_module_state->__pyx_codeobj__426);
  Py_VISIT(traverse_module_state->__pyx_codeobj__427);
  Py_VISIT(traverse_module_state->__pyx_codeobj__429);
  Py_VISIT(traverse_module_state->__pyx_codeobj__431);
  Py_VISIT(traverse_module_state->__pyx_codeobj__433);
  Py_VISIT(traverse_module_state->__pyx_codeobj__434);
  Py_VISIT(traverse_module_state->__pyx_codeobj__436);
  Py_VISIT(traverse_module_state->__pyx_codeobj__437);
  Py_VISIT(traverse_module_state->__pyx_codeobj__439);
  Py_VISIT(traverse_module_state->__pyx_codeobj__441);
  Py_VISIT(traverse_module_state->__pyx_codeobj__443);
  Py_VISIT(traverse_module_state->__pyx_codeobj__444);
  Py_VISIT(traverse_module_state->__pyx_codeobj__446);
  Py_VISIT(traverse_module_state->__pyx_codeobj__447);
  Py_VISIT(traverse_module_state->__pyx_codeobj__448);
  Py_VISIT(traverse_module_state->__pyx_codeobj__449);
  Py_VISIT(traverse_module_state->__pyx_codeobj__451);
  Py_VISIT(traverse_module_state->__pyx_codeobj__452);
  Py_VISIT(traverse_module_state->__pyx_codeobj__454);
  Py_VISIT(traverse_module_state->__pyx_codeobj__455);
  Py_VISIT(traverse_module_state->__pyx_codeobj__457);
  Py_VISIT(traverse_module_state->__pyx_codeobj__459);
  Py_VISIT(traverse_module_state->__pyx_codeobj__461);
  Py_VISIT(traverse_module_state->__pyx_codeobj__462);
  Py_VISIT(traverse_module_state->__pyx_codeobj__464);
  Py_VISIT(traverse_module_state->__pyx_codeobj__465);
  Py_VISIT(traverse_module_state->__pyx_codeobj__466);
  Py_VISIT(traverse_module_state->__pyx_codeobj__468);
  Py_VISIT(traverse_module_state->__pyx_codeobj__470);
  Py_VISIT(traverse_module_state->__pyx_codeobj__471);
  Py_VISIT(traverse_module_state->__pyx_codeobj__473);
  Py_VISIT(traverse_module_state->__pyx_codeobj__474);
  Py_VISIT(traverse_module_state->__pyx_codeobj__475);
  Py_VISIT(traverse_module_state->__pyx_codeobj__477);
  Py_VISIT(traverse_module_state->__pyx_codeobj__479);
  Py_VISIT(traverse_module_state->__pyx_codeobj__480);
  Py_VISIT(traverse_module_state->__pyx_codeobj__482);
  Py_VISIT(traverse_module_state->__pyx_codeobj__483);
  Py_VISIT(traverse_module_state->__pyx_codeobj__484);
  Py_VISIT(traverse_module_state->__pyx_codeobj__486);
  Py_VISIT(traverse_module_state->__pyx_codeobj__488);
  Py_VISIT(traverse_module_state->__pyx_codeobj__489);
  Py_VISIT(traverse_module_state->__pyx_codeobj__491);
  Py_VISIT(traverse_module_state->__pyx_codeobj__492);
  Py_VISIT(traverse_module_state->__pyx_codeobj__493);
  Py_VISIT(traverse_module_state->__pyx_codeobj__494);
  Py_VISIT(traverse_module_state->__pyx_codeobj__496);
  Py_VISIT(traverse_module_state->__pyx_codeobj__497);
  Py_VISIT(traverse_module_state->__pyx_codeobj__499);
  Py_VISIT(traverse_module_state->__pyx_codeobj__500);
  Py_VISIT(traverse_module_state->__pyx_codeobj__502);
  Py_VISIT(traverse_module_state->__pyx_codeobj__504);
  Py_VISIT(traverse_module_state->__pyx_codeobj__506);
  Py_VISIT(traverse_module_state->__pyx_codeobj__507);
  Py_VISIT(traverse_module_state->__pyx_codeobj__509);
  Py_VISIT(traverse_module_state->__pyx_codeobj__510);
  Py_VISIT(traverse_module_state->__pyx_codeobj__511);
  Py_VISIT(traverse_module_state->__pyx_codeobj__513);
  Py_VISIT(traverse_module_state->__pyx_codeobj__515);
  Py_VISIT(traverse_module_state->__pyx_codeobj__516);
  Py_VISIT(traverse_module_state->__pyx_codeobj__518);
  Py_VISIT(traverse_module_state->__pyx_codeobj__519);
  Py_VISIT(traverse_module_state->__pyx_codeobj__520);
  Py_VISIT(traverse_module_state->__pyx_codeobj__522);
  Py_VISIT(traverse_module_state->__pyx_codeobj__524);
  Py_VISIT(traverse_module_state->__pyx_codeobj__525);
  Py_VISIT(traverse_module_state->__pyx_codeobj__527);
  Py_VISIT(traverse_module_state->__pyx_codeobj__529);
  Py_VISIT(traverse_module_state->__pyx_codeobj__531);
  Py_VISIT(traverse_module_state->__pyx_codeobj__532);
  Py_VISIT(traverse_module_state->__pyx_codeobj__534);
  Py_VISIT(traverse_module_state->__pyx_codeobj__536);
  Py_VISIT(traverse_module_state->__pyx_codeobj__538);
  Py_VISIT(traverse_module_state->__pyx_codeobj__540);
  Py_VISIT(traverse_module_state->__pyx_codeobj__542);
  Py_VISIT(traverse_module_state->__pyx_codeobj__543);
  Py_VISIT(traverse_module_state->__pyx_codeobj__545);
  Py_VISIT(traverse_module_state->__pyx_codeobj__546);
  Py_VISIT(traverse_module_state->__pyx_codeobj__547);
  Py_VISIT(traverse_module_state->__pyx_codeobj__549);
  Py_VISIT(traverse_module_state->__pyx_codeobj__551);
  Py_VISIT(traverse_module_state->__pyx_codeobj__552);
  Py_VISIT(traverse_module_state->__pyx_codeobj__554);
  Py_VISIT(traverse_module_state->__pyx_codeobj__555);
  Py_VISIT(traverse_module_state->__pyx_codeobj__557);
  Py_VISIT(traverse_module_state->__pyx_codeobj__559);
  Py_VISIT(traverse_module_state->__pyx_codeobj__561);
  Py_VISIT(traverse_module_state->__pyx_codeobj__562);
  Py_VISIT(traverse_module_state->__pyx_codeobj__564);
  Py_VISIT(traverse_module_state->__pyx_codeobj__565);
  Py_VISIT(traverse_module_state->__pyx_codeobj__567);
  Py_VISIT(traverse_module_state->__pyx_codeobj__568);
  Py_VISIT(traverse_module_state->__pyx_codeobj__570);
  Py_VISIT(traverse_module_state->__pyx_codeobj__571);
  Py_VISIT(traverse_module_state->__pyx_codeobj__573);
  Py_VISIT(traverse_module_state->__pyx_codeobj__574);
  Py_VISIT(traverse_module_state->__pyx_codeobj__576);
  Py_VISIT(traverse_module_state->__pyx_codeobj__578);
  Py_VISIT(traverse_module_state->__pyx_codeobj__580);
  Py_VISIT(traverse_module_state->__pyx_codeobj__581);
  Py_VISIT(traverse_module_state->__pyx_codeobj__583);
  Py_VISIT(traverse_module_state->__pyx_codeobj__584);
  Py_VISIT(traverse_module_state->__pyx_codeobj__585);
  Py_VISIT(traverse_module_state->__pyx_codeobj__587);
  Py_VISIT(traverse_module_state->__pyx_codeobj__589);
  Py_VISIT(traverse_module_state->__pyx_codeobj__590);
  Py_VISIT(traverse_module_state->__pyx_codeobj__592);
  Py_VISIT(traverse_module_state->__pyx_codeobj__593);
  Py_VISIT(traverse_module_state->__pyx_codeobj__595);
  Py_VISIT(traverse_module_state->__pyx_codeobj__597);
  Py_VISIT(traverse_module_state->__pyx_codeobj__599);
  Py_VISIT(traverse_module_state->__pyx_codeobj__600);
  Py_VISIT(traverse_module_state->__pyx_codeobj__602);
  Py_VISIT(traverse_module_state->__pyx_codeobj__603);
  Py_VISIT(traverse_module_state->__pyx_codeobj__604);
  Py_VISIT(traverse_module_state->__pyx_codeobj__605);
  Py_VISIT(traverse_module_state->__pyx_codeobj__607);
  Py_VISIT(traverse_module_state->__pyx_codeobj__608);
  Py_VISIT(traverse_module_state->__pyx_codeobj__610);
  Py_VISIT(traverse_module_state->__pyx_codeobj__611);
  Py_VISIT(traverse_module_state->__pyx_codeobj__613);
  Py_VISIT(traverse_module_state->__pyx_codeobj__615);
  Py_VISIT(traverse_module_state->__pyx_codeobj__617);
  Py_VISIT(traverse_module_state->__pyx_codeobj__618);
  Py_VISIT(traverse_module_state->__pyx_codeobj__620);
  Py_VISIT(traverse_module_state->__pyx_codeobj__621);
  Py_VISIT(traverse_module_state->__pyx_codeobj__622);
  Py_VISIT(traverse_module_state->__pyx_codeobj__624);
  Py_VISIT(traverse_module_state->__pyx_codeobj__626);
  Py_VISIT(traverse_module_state->__pyx_codeobj__627);
  Py_VISIT(traverse_module_state->__pyx_codeobj__630);
  Py_VISIT(traverse_module_state->__pyx_codeobj__631);
  Py_VISIT(traverse_module_state->__pyx_codeobj__632);
  Py_VISIT(traverse_module_state->__pyx_codeobj__633);
  Py_VISIT(traverse_module_state->__pyx_codeobj__634);
  Py_VISIT(traverse_module_state->__pyx_codeobj__636);
  Py_VISIT(traverse_module_state->__pyx_codeobj__637);
  Py_VISIT(traverse_module_state->__pyx_codeobj__639);
  Py_VISIT(traverse_module_state->__pyx_codeobj__640);
  Py_VISIT(traverse_module_state->__pyx_codeobj__642);
  Py_VISIT(traverse_module_state->__pyx_codeobj__644);
  Py_VISIT(traverse_module_state->__pyx_codeobj__646);
  Py_VISIT(traverse_module_state->__pyx_codeobj__647);
  Py_VISIT(traverse_module_state->__pyx_codeobj__649);
  Py_VISIT(traverse_module_state->__pyx_codeobj__650);
  Py_VISIT(traverse_module_state->__pyx_codeobj__651);
  Py_VISIT(traverse_module_state->__pyx_codeobj__652);
  Py_VISIT(traverse_module_state->__pyx_codeobj__653);
  Py_VISIT(traverse_module_state->__pyx_codeobj__655);
  Py_VISIT(traverse_module_state->__pyx_codeobj__656);
  Py_VISIT(traverse_module_state->__pyx_codeobj__658);
  Py_VISIT(traverse_module_state->__pyx_codeobj__659);
  Py_VISIT(traverse_module_state->__pyx_codeobj__660);
  Py_VISIT(traverse_module_state->__pyx_codeobj__661);
  Py_VISIT(traverse_module_state->__pyx_codeobj__663);
  Py_VISIT(traverse_module_state->__pyx_codeobj__665);
  Py_VISIT(traverse_module_state->__pyx_codeobj__666);
  Py_VISIT(traverse_module_state->__pyx_codeobj__668);
  Py_VISIT(traverse_module_state->__pyx_codeobj__669);
  Py_VISIT(traverse_module_state->__pyx_codeobj__671);
  Py_VISIT(traverse_module_state->__pyx_codeobj__673);
  Py_VISIT(traverse_module_state->__pyx_codeobj__675);
  Py_VISIT(traverse_module_state->__pyx_codeobj__676);
  Py_VISIT(traverse_module_state->__pyx_codeobj__678);
  Py_VISIT(traverse_module_state->__pyx_codeobj__679);
  Py_VISIT(traverse_module_state->__pyx_codeobj__680);
  Py_VISIT(traverse_module_state->__pyx_codeobj__682);
  Py_VISIT(traverse_module_state->__pyx_codeobj__684);
  Py_VISIT(traverse_module_state->__pyx_codeobj__685);
  Py_VISIT(traverse_module_state->__pyx_codeobj__687);
  Py_VISIT(traverse_module_state->__pyx_codeobj__688);
  Py_VISIT(traverse_module_state->__pyx_codeobj__689);
  Py_VISIT(traverse_module_state->__pyx_codeobj__691);
  Py_VISIT(traverse_module_state->__pyx_codeobj__693);
  Py_VISIT(traverse_module_state->__pyx_codeobj__694);
  Py_VISIT(traverse_module_state->__pyx_codeobj__696);
  Py_VISIT(traverse_module_state->__pyx_codeobj__697);
  Py_VISIT(traverse_module_state->__pyx_codeobj__699);
  Py_VISIT(traverse_module_state->__pyx_codeobj__701);
  Py_VISIT(traverse_module_state->__pyx_codeobj__703);
  Py_VISIT(traverse_module_state->__pyx_codeobj__705);
  Py_VISIT(traverse_module_state->__pyx_codeobj__706);
  Py_VISIT(traverse_module_state->__pyx_codeobj__707);
  Py_VISIT(traverse_module_state->__pyx_codeobj__709);
  Py_VISIT(traverse_module_state->__pyx_codeobj__710);
  Py_VISIT(traverse_module_state->__pyx_codeobj__712);
  Py_VISIT(traverse_module_state->__pyx_codeobj__714);
  Py_VISIT(traverse_module_state->__pyx_codeobj__716);
  Py_VISIT(traverse_module_state->__pyx_codeobj__718);
  Py_VISIT(traverse_module_state->__pyx_codeobj__719);
  Py_VISIT(traverse_module_state->__pyx_codeobj__720);
  Py_VISIT(traverse_module_state->__pyx_codeobj__722);
  Py_VISIT(traverse_module_state->__pyx_codeobj__723);
  Py_VISIT(traverse_module_state->__pyx_codeobj__725);
  Py_VISIT(traverse_module_state->__pyx_codeobj__726);
  Py_VISIT(traverse_module_state->__pyx_codeobj__727);
  Py_VISIT(traverse_module_state->__pyx_codeobj__729);
  Py_VISIT(traverse_module_state->__pyx_codeobj__731);
  Py_VISIT(traverse_module_state->__pyx_codeobj__732);
  Py_VISIT(traverse_module_state->__pyx_codeobj__734);
  Py_VISIT(traverse_module_state->__pyx_codeobj__735);
  Py_VISIT(traverse_module_state->__pyx_codeobj__736);
  Py_VISIT(traverse_module_state->__pyx_codeobj__737);
  Py_VISIT(traverse_module_state->__pyx_codeobj__739);
  Py_VISIT(traverse_module_state->__pyx_codeobj__740);
  Py_VISIT(traverse_module_state->__pyx_codeobj__742);
  Py_VISIT(traverse_module_state->__pyx_codeobj__743);
  Py_VISIT(traverse_module_state->__pyx_codeobj__745);
  Py_VISIT(traverse_module_state->__pyx_codeobj__747);
  Py_VISIT(traverse_module_state->__pyx_codeobj__749);
  Py_VISIT(traverse_module_state->__pyx_codeobj__750);
  Py_VISIT(traverse_module_state->__pyx_codeobj__752);
  Py_VISIT(traverse_module_state->__pyx_codeobj__753);
  Py_VISIT(traverse_module_state->__pyx_codeobj__755);
  Py_VISIT(traverse_module_state->__pyx_codeobj__757);
  Py_VISIT(traverse_module_state->__pyx_codeobj__759);
  Py_VISIT(traverse_module_state->__pyx_codeobj__760);
  Py_VISIT(traverse_module_state->__pyx_codeobj__762);
  Py_VISIT(traverse_module_state->__pyx_codeobj__763);
  Py_VISIT(traverse_module_state->__pyx_codeobj__765);
  Py_VISIT(traverse_module_state->__pyx_codeobj__766);
  Py_VISIT(traverse_module_state->__pyx_codeobj__768);
  Py_VISIT(traverse_module_state->__pyx_codeobj__769);
  Py_VISIT(traverse_module_state->__pyx_codeobj__771);
  Py_VISIT(traverse_module_state->__pyx_codeobj__772);
  Py_VISIT(traverse_module_state->__pyx_codeobj__773);
  Py_VISIT(traverse_module_state->__pyx_codeobj__774);
  Py_VISIT(traverse_module_state->__pyx_codeobj__776);
  Py_VISIT(traverse_module_state->__pyx_codeobj__778);
  Py_VISIT(traverse_module_state->__pyx_codeobj__780);
  Py_VISIT(traverse_module_state->__pyx_codeobj__781);
  Py_VISIT(traverse_module_state->__pyx_codeobj__782);
  Py_VISIT(traverse_module_state->__pyx_codeobj__785);
  Py_VISIT(traverse_module_state->__pyx_codeobj__787);
  Py_VISIT(traverse_module_state->__pyx_codeobj__788);
  Py_VISIT(traverse_module_state->__pyx_codeobj__790);
  Py_VISIT(traverse_module_state->__pyx_codeobj__791);
  Py_VISIT(traverse_module_state->__pyx_codeobj__792);
  Py_VISIT(traverse_module_state->__pyx_codeobj__793);
  Py_VISIT(traverse_module_state->__pyx_codeobj__795);
  Py_VISIT(traverse_module_state->__pyx_codeobj__796);
  Py_VISIT(traverse_module_state->__pyx_codeobj__798);
  Py_VISIT(traverse_module_state->__pyx_codeobj__799);
  Py_VISIT(traverse_module_state->__pyx_codeobj__800);
  Py_VISIT(traverse_module_state->__pyx_codeobj__801);
  Py_VISIT(traverse_module_state->__pyx_codeobj__803);
  Py_VISIT(traverse_module_state->__pyx_codeobj__804);
  Py_VISIT(traverse_module_state->__pyx_codeobj__805);
  Py_VISIT(traverse_module_state->__pyx_codeobj__806);
  Py_VISIT(traverse_module_state->__pyx_codeobj__807);
  Py_VISIT(traverse_module_state->__pyx_codeobj__809);
  Py_VISIT(traverse_module_state->__pyx_codeobj__810);
  Py_VISIT(traverse_module_state->__pyx_codeobj__812);
  Py_VISIT(traverse_module_state->__pyx_codeobj__813);
  Py_VISIT(traverse_module_state->__pyx_codeobj__814);
  Py_VISIT(traverse_module_state->__pyx_codeobj__815);
  Py_VISIT(traverse_module_state->__pyx_codeobj__817);
  Py_VISIT(traverse_module_state->__pyx_codeobj__818);
  Py_VISIT(traverse_module_state->__pyx_codeobj__820);
  Py_VISIT(traverse_module_state->__pyx_codeobj__821);
  Py_VISIT(traverse_module_state->__pyx_codeobj__822);
  Py_VISIT(traverse_module_state->__pyx_codeobj__823);
  Py_VISIT(traverse_module_state->__pyx_codeobj__825);
  Py_VISIT(traverse_module_state->__pyx_codeobj__827);
  Py_VISIT(traverse_module_state->__pyx_codeobj__828);
  Py_VISIT(traverse_module_state->__pyx_codeobj__830);
  Py_VISIT(traverse_module_state->__pyx_codeobj__831);
  Py_VISIT(traverse_module_state->__pyx_codeobj__832);
  Py_VISIT(traverse_module_state->__pyx_codeobj__833);
  Py_VISIT(traverse_module_state->__pyx_codeobj__835);
  Py_VISIT(traverse_module_state->__pyx_codeobj__836);
  Py_VISIT(traverse_module_state->__pyx_codeobj__837);
  Py_VISIT(traverse_module_state->__pyx_codeobj__839);
  Py_VISIT(traverse_module_state->__pyx_codeobj__841);
  Py_VISIT(traverse_module_state->__pyx_codeobj__843);
  Py_VISIT(traverse_module_state->__pyx_codeobj__846);
  Py_VISIT(traverse_module_state->__pyx_codeobj__847);
  Py_VISIT(traverse_module_state->__pyx_codeobj__848);
  Py_VISIT(traverse_module_state->__pyx_codeobj__850);
  Py_VISIT(traverse_module_state->__pyx_codeobj__852);
  Py_VISIT(traverse_module_state->__pyx_codeobj__853);
  Py_VISIT(traverse_module_state->__pyx_codeobj__855);
  Py_VISIT(traverse_module_state->__pyx_codeobj__856);
  Py_VISIT(traverse_module_state->__pyx_codeobj__857);
  Py_VISIT(traverse_module_state->__pyx_codeobj__858);
  Py_VISIT(traverse_module_state->__pyx_codeobj__859);
  Py_VISIT(traverse_module_state->__pyx_codeobj__860);
  Py_VISIT(traverse_module_state->__pyx_codeobj__861);
  Py_VISIT(traverse_module_state->__pyx_codeobj__862);
  Py_VISIT(traverse_module_state->__pyx_codeobj__863);
  Py_VISIT(traverse_module_state->__pyx_codeobj__864);
  Py_VISIT(traverse_module_state->__pyx_codeobj__865);
  Py_VISIT(traverse_module_state->__pyx_codeobj__866);
  Py_VISIT(traverse_module_state->__pyx_codeobj__867);
  Py_VISIT(traverse_module_state->__pyx_codeobj__868);
  Py_VISIT(traverse_module_state->__pyx_codeobj__869);
  Py_VISIT(traverse_module_state->__pyx_codeobj__870);
  Py_VISIT(traverse_module_state->__pyx_codeobj__871);
  Py_VISIT(traverse_module_state->__pyx_codeobj__872);
  Py_VISIT(traverse_module_state->__pyx_codeobj__873);
  Py_VISIT(traverse_module_state->__pyx_codeobj__874);
  Py_VISIT(traverse_module_state->__pyx_codeobj__875);
  Py_VISIT(traverse_module_state->__pyx_codeobj__876);
  Py_VISIT(traverse_module_state->__pyx_codeobj__877);
  Py_VISIT(traverse_module_state->__pyx_codeobj__878);
  Py_VISIT(traverse_module_state->__pyx_codeobj__879);
  Py_VISIT(traverse_module_state->__pyx_codeobj__880);
  Py_VISIT(traverse_module_state->__pyx_codeobj__881);
  Py_VISIT(traverse_module_state->__pyx_codeobj__882);
  Py_VISIT(traverse_module_state->__pyx_codeobj__883);
  Py_VISIT(traverse_module_state->__pyx_codeobj__884);
  Py_VISIT(traverse_module_state->__pyx_codeobj__885);
  Py_VISIT(traverse_module_state->__pyx_codeobj__886);
  Py_VISIT(traverse_module_state->__pyx_codeobj__887);
  Py_VISIT(traverse_module_state->__pyx_codeobj__888);
  Py_VISIT(traverse_module_state->__pyx_codeobj__889);
  Py_VISIT(traverse_module_state->__pyx_codeobj__890);
  Py_VISIT(traverse_module_state->__pyx_codeobj__891);
  Py_VISIT(traverse_module_state->__pyx_codeobj__892);
  Py_VISIT(traverse_module_state->__pyx_codeobj__893);
  Py_VISIT(traverse_module_state->__pyx_codeobj__894);
  Py_VISIT(traverse_module_state->__pyx_codeobj__895);
  Py_VISIT(traverse_module_state->__pyx_codeobj__896);
  Py_VISIT(traverse_module_state->__pyx_codeobj__897);
  Py_VISIT(traverse_module_state->__pyx_codeobj__898);
  Py_VISIT(traverse_module_state->__pyx_codeobj__899);
  Py_VISIT(traverse_module_state->__pyx_codeobj__900);
  Py_VISIT(traverse_module_state->__pyx_codeobj__901);
  Py_VISIT(traverse_module_state->__pyx_codeobj__902);
  Py_VISIT(traverse_module_state->__pyx_codeobj__903);
  Py_VISIT(traverse_module_state->__pyx_codeobj__904);
  Py_VISIT(traverse_module_state->__pyx_codeobj__905);
  Py_VISIT(traverse_module_state->__pyx_codeobj__906);
  Py_VISIT(traverse_module_state->__pyx_codeobj__907);
  Py_VISIT(traverse_module_state->__pyx_codeobj__908);
  Py_VISIT(traverse_module_state->__pyx_codeobj__909);
  Py_VISIT(traverse_module_state->__pyx_codeobj__910);
  Py_VISIT(traverse_module_state->__pyx_codeobj__911);
  Py_VISIT(traverse_module_state->__pyx_codeobj__912);
  Py_VISIT(traverse_module_state->__pyx_codeobj__913);
  Py_VISIT(traverse_module_state->__pyx_codeobj__914);
  Py_VISIT(traverse_module_state->__pyx_codeobj__915);
  Py_VISIT(traverse_module_state->__pyx_codeobj__916);
  Py_VISIT(traverse_module_state->__pyx_codeobj__917);
  Py_VISIT(traverse_module_state->__pyx_codeobj__918);
  Py_VISIT(traverse_module_state->__pyx_codeobj__919);
  Py_VISIT(traverse_module_state->__pyx_codeobj__920);
  Py_VISIT(traverse_module_state->__pyx_codeobj__921);
  Py_VISIT(traverse_module_state->__pyx_codeobj__922);
  Py_VISIT(traverse_module_state->__pyx_codeobj__923);
  Py_VISIT(traverse_module_state->__pyx_codeobj__924);
  Py_VISIT(traverse_module_state->__pyx_codeobj__925);
  Py_VISIT(traverse_module_state->__pyx_codeobj__926);
  Py_VISIT(traverse_module_state->__pyx_codeobj__927);
  Py_VISIT(traverse_module_state->__pyx_codeobj__928);
  Py_VISIT(traverse_module_state->__pyx_codeobj__929);
  Py_VISIT(traverse_module_state->__pyx_codeobj__930);
  Py_VISIT(traverse_module_state->__pyx_codeobj__931);
  Py_VISIT(traverse_module_state->__pyx_codeobj__932);
  Py_VISIT(traverse_module_state->__pyx_codeobj__933);
  Py_VISIT(traverse_module_state->__pyx_codeobj__934);
  return 0;
}
#endif
/* #### Code section: module_state_defines ### */
#define __pyx_d __pyx_mstate_global->__pyx_d
#define __pyx_b __pyx_mstate_global->__pyx_b
#define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
#define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
#define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
#define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
#ifdef __Pyx_CyFunction_USED
#define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
#endif
#ifdef __Pyx_FusedFunction_USED
#define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
#endif
#ifdef __Pyx_Generator_USED
#define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
#endif
#ifdef __Pyx_IterableCoroutine_USED
#define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
#endif
#ifdef __Pyx_Coroutine_USED
#define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_5numpy_dtype __pyx_mstate_global->__pyx_ptype_5numpy_dtype
#define __pyx_ptype_5numpy_flatiter __pyx_mstate_global->__pyx_ptype_5numpy_flatiter
#define __pyx_ptype_5numpy_broadcast __pyx_mstate_global->__pyx_ptype_5numpy_broadcast
#define __pyx_ptype_5numpy_ndarray __pyx_mstate_global->__pyx_ptype_5numpy_ndarray
#define __pyx_ptype_5numpy_generic __pyx_mstate_global->__pyx_ptype_5numpy_generic
#define __pyx_ptype_5numpy_number __pyx_mstate_global->__pyx_ptype_5numpy_number
#define __pyx_ptype_5numpy_integer __pyx_mstate_global->__pyx_ptype_5numpy_integer
#define __pyx_ptype_5numpy_signedinteger __pyx_mstate_global->__pyx_ptype_5numpy_signedinteger
#define __pyx_ptype_5numpy_unsignedinteger __pyx_mstate_global->__pyx_ptype_5numpy_unsignedinteger
#define __pyx_ptype_5numpy_inexact __pyx_mstate_global->__pyx_ptype_5numpy_inexact
#define __pyx_ptype_5numpy_floating __pyx_mstate_global->__pyx_ptype_5numpy_floating
#define __pyx_ptype_5numpy_complexfloating __pyx_mstate_global->__pyx_ptype_5numpy_complexfloating
#define __pyx_ptype_5numpy_flexible __pyx_mstate_global->__pyx_ptype_5numpy_flexible
#define __pyx_ptype_5numpy_character __pyx_mstate_global->__pyx_ptype_5numpy_character
#define __pyx_ptype_5numpy_ufunc __pyx_mstate_global->__pyx_ptype_5numpy_ufunc
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#if CYTHON_USE_MODULE_STATE
#endif
#define __pyx_ptype_8pysndlib_3clm_mus_any __pyx_mstate_global->__pyx_ptype_8pysndlib_3clm_mus_any
#if CYTHON_USE_MODULE_STATE
#define __pyx_type_8pysndlib_10generators_CLMGenerator __pyx_mstate_global->__pyx_type_8pysndlib_10generators_CLMGenerator
#define __pyx_type_8pysndlib_10generators_Nssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nssb
#define __pyx_type_8pysndlib_10generators_Nxysin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nxysin
#define __pyx_type_8pysndlib_10generators_Nxycos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nxycos
#define __pyx_type_8pysndlib_10generators_Nxy1cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nxy1cos
#define __pyx_type_8pysndlib_10generators_Nxy1sin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nxy1sin
#define __pyx_type_8pysndlib_10generators_Noddcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Noddcos
#define __pyx_type_8pysndlib_10generators_Noddssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Noddssb
#define __pyx_type_8pysndlib_10generators_Ncos2 __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Ncos2
#define __pyx_type_8pysndlib_10generators_Ncos4 __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Ncos4
#define __pyx_type_8pysndlib_10generators_Npcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Npcos
#define __pyx_type_8pysndlib_10generators_Ncos5 __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Ncos5
#define __pyx_type_8pysndlib_10generators_Nsin5 __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nsin5
#define __pyx_type_8pysndlib_10generators_Nrcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nrcos
#define __pyx_type_8pysndlib_10generators_Nrssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nrssb
#define __pyx_type_8pysndlib_10generators_Nkssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nkssb
#define __pyx_type_8pysndlib_10generators_Nsincos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nsincos
#define __pyx_type_8pysndlib_10generators_N1cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_N1cos
#define __pyx_type_8pysndlib_10generators_Npos1cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Npos1cos
#define __pyx_type_8pysndlib_10generators_Npos3cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Npos3cos
#define __pyx_type_8pysndlib_10generators_Rcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rcos
#define __pyx_type_8pysndlib_10generators_Rssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rssb
#define __pyx_type_8pysndlib_10generators_Rxysin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rxysin
#define __pyx_type_8pysndlib_10generators_Rxycos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rxycos
#define __pyx_type_8pysndlib_10generators_SafeRxycos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_SafeRxycos
#define __pyx_type_8pysndlib_10generators_Ercos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Ercos
#define __pyx_type_8pysndlib_10generators_Erssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Erssb
#define __pyx_type_8pysndlib_10generators_R2cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_R2cos
#define __pyx_type_8pysndlib_10generators_R2ssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_R2ssb
#define __pyx_type_8pysndlib_10generators_Eoddcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Eoddcos
#define __pyx_type_8pysndlib_10generators_Rkcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rkcos
#define __pyx_type_8pysndlib_10generators_Rksin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rksin
#define __pyx_type_8pysndlib_10generators_Rkssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rkssb
#define __pyx_type_8pysndlib_10generators_Rkfcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rkfcos
#define __pyx_type_8pysndlib_10generators_Rkfssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rkfssb
#define __pyx_type_8pysndlib_10generators_R2kfcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_R2kfcos
#define __pyx_type_8pysndlib_10generators_K2sin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_K2sin
#define __pyx_type_8pysndlib_10generators_K2cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_K2cos
#define __pyx_type_8pysndlib_10generators_K2ssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_K2ssb
#define __pyx_type_8pysndlib_10generators_Dblsum __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Dblsum
#define __pyx_type_8pysndlib_10generators_Rkoddssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Rkoddssb
#define __pyx_type_8pysndlib_10generators_Krksin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Krksin
#define __pyx_type_8pysndlib_10generators_Absin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Absin
#define __pyx_type_8pysndlib_10generators_Abcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Abcos
#define __pyx_type_8pysndlib_10generators_R2k2cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_R2k2cos
#define __pyx_type_8pysndlib_10generators_Blsaw __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Blsaw
#define __pyx_type_8pysndlib_10generators_Asyfm __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Asyfm
#define __pyx_type_8pysndlib_10generators_Bess __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Bess
#define __pyx_type_8pysndlib_10generators_Jjcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Jjcos
#define __pyx_type_8pysndlib_10generators_J0evencos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_J0evencos
#define __pyx_type_8pysndlib_10generators_J2cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_J2cos
#define __pyx_type_8pysndlib_10generators_Jpcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Jpcos
#define __pyx_type_8pysndlib_10generators_Jncos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Jncos
#define __pyx_type_8pysndlib_10generators_J0j1cos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_J0j1cos
#define __pyx_type_8pysndlib_10generators_Jycos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Jycos
#define __pyx_type_8pysndlib_10generators_Jcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Jcos
#define __pyx_type_8pysndlib_10generators_Blackman __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Blackman
#define __pyx_type_8pysndlib_10generators_Fmssb __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Fmssb
#define __pyx_type_8pysndlib_10generators_K3sin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_K3sin
#define __pyx_type_8pysndlib_10generators_Izcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Izcos
#define __pyx_type_8pysndlib_10generators_AdjustableSquareWave __pyx_mstate_global->__pyx_type_8pysndlib_10generators_AdjustableSquareWave
#define __pyx_type_8pysndlib_10generators_AdjustableTriangleWave __pyx_mstate_global->__pyx_type_8pysndlib_10generators_AdjustableTriangleWave
#define __pyx_type_8pysndlib_10generators_AdjustableSawtoothWave __pyx_mstate_global->__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave
#define __pyx_type_8pysndlib_10generators_AdjustableOscil __pyx_mstate_global->__pyx_type_8pysndlib_10generators_AdjustableOscil
#define __pyx_type_8pysndlib_10generators_RoundInterp __pyx_mstate_global->__pyx_type_8pysndlib_10generators_RoundInterp
#define __pyx_type_8pysndlib_10generators_Nchoosekcos __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Nchoosekcos
#define __pyx_type_8pysndlib_10generators_SincTrain __pyx_mstate_global->__pyx_type_8pysndlib_10generators_SincTrain
#define __pyx_type_8pysndlib_10generators_PinkNoise __pyx_mstate_global->__pyx_type_8pysndlib_10generators_PinkNoise
#define __pyx_type_8pysndlib_10generators_BrownNoise __pyx_mstate_global->__pyx_type_8pysndlib_10generators_BrownNoise
#define __pyx_type_8pysndlib_10generators_GreenNoise __pyx_mstate_global->__pyx_type_8pysndlib_10generators_GreenNoise
#define __pyx_type_8pysndlib_10generators_GreenNoiseInterp __pyx_mstate_global->__pyx_type_8pysndlib_10generators_GreenNoiseInterp
#define __pyx_type_8pysndlib_10generators_MovingSum __pyx_mstate_global->__pyx_type_8pysndlib_10generators_MovingSum
#define __pyx_type_8pysndlib_10generators_MovingVariance __pyx_mstate_global->__pyx_type_8pysndlib_10generators_MovingVariance
#define __pyx_type_8pysndlib_10generators_MovingRMS __pyx_mstate_global->__pyx_type_8pysndlib_10generators_MovingRMS
#define __pyx_type_8pysndlib_10generators_MovingLength __pyx_mstate_global->__pyx_type_8pysndlib_10generators_MovingLength
#define __pyx_type_8pysndlib_10generators_WeightedMovingAverage __pyx_mstate_global->__pyx_type_8pysndlib_10generators_WeightedMovingAverage
#define __pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage __pyx_mstate_global->__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage
#define __pyx_type_8pysndlib_10generators_Tanhsin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Tanhsin
#define __pyx_type_8pysndlib_10generators_Noddsin __pyx_mstate_global->__pyx_type_8pysndlib_10generators_Noddsin
#define __pyx_type_8pysndlib_10generators_MovingFFT __pyx_mstate_global->__pyx_type_8pysndlib_10generators_MovingFFT
#define __pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max __pyx_mstate_global->__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max
#define __pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max __pyx_mstate_global->__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max
#define __pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max __pyx_mstate_global->__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max
#define __pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env __pyx_mstate_global->__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env
#define __pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y __pyx_mstate_global->__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y
#endif
#define __pyx_ptype_8pysndlib_10generators_CLMGenerator __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_CLMGenerator
#define __pyx_ptype_8pysndlib_10generators_Nssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nssb
#define __pyx_ptype_8pysndlib_10generators_Nxysin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nxysin
#define __pyx_ptype_8pysndlib_10generators_Nxycos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nxycos
#define __pyx_ptype_8pysndlib_10generators_Nxy1cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nxy1cos
#define __pyx_ptype_8pysndlib_10generators_Nxy1sin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nxy1sin
#define __pyx_ptype_8pysndlib_10generators_Noddcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Noddcos
#define __pyx_ptype_8pysndlib_10generators_Noddssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Noddssb
#define __pyx_ptype_8pysndlib_10generators_Ncos2 __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Ncos2
#define __pyx_ptype_8pysndlib_10generators_Ncos4 __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Ncos4
#define __pyx_ptype_8pysndlib_10generators_Npcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Npcos
#define __pyx_ptype_8pysndlib_10generators_Ncos5 __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Ncos5
#define __pyx_ptype_8pysndlib_10generators_Nsin5 __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nsin5
#define __pyx_ptype_8pysndlib_10generators_Nrcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nrcos
#define __pyx_ptype_8pysndlib_10generators_Nrssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nrssb
#define __pyx_ptype_8pysndlib_10generators_Nkssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nkssb
#define __pyx_ptype_8pysndlib_10generators_Nsincos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nsincos
#define __pyx_ptype_8pysndlib_10generators_N1cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_N1cos
#define __pyx_ptype_8pysndlib_10generators_Npos1cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Npos1cos
#define __pyx_ptype_8pysndlib_10generators_Npos3cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Npos3cos
#define __pyx_ptype_8pysndlib_10generators_Rcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rcos
#define __pyx_ptype_8pysndlib_10generators_Rssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rssb
#define __pyx_ptype_8pysndlib_10generators_Rxysin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rxysin
#define __pyx_ptype_8pysndlib_10generators_Rxycos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rxycos
#define __pyx_ptype_8pysndlib_10generators_SafeRxycos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_SafeRxycos
#define __pyx_ptype_8pysndlib_10generators_Ercos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Ercos
#define __pyx_ptype_8pysndlib_10generators_Erssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Erssb
#define __pyx_ptype_8pysndlib_10generators_R2cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_R2cos
#define __pyx_ptype_8pysndlib_10generators_R2ssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_R2ssb
#define __pyx_ptype_8pysndlib_10generators_Eoddcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Eoddcos
#define __pyx_ptype_8pysndlib_10generators_Rkcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rkcos
#define __pyx_ptype_8pysndlib_10generators_Rksin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rksin
#define __pyx_ptype_8pysndlib_10generators_Rkssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rkssb
#define __pyx_ptype_8pysndlib_10generators_Rkfcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rkfcos
#define __pyx_ptype_8pysndlib_10generators_Rkfssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rkfssb
#define __pyx_ptype_8pysndlib_10generators_R2kfcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_R2kfcos
#define __pyx_ptype_8pysndlib_10generators_K2sin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_K2sin
#define __pyx_ptype_8pysndlib_10generators_K2cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_K2cos
#define __pyx_ptype_8pysndlib_10generators_K2ssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_K2ssb
#define __pyx_ptype_8pysndlib_10generators_Dblsum __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Dblsum
#define __pyx_ptype_8pysndlib_10generators_Rkoddssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Rkoddssb
#define __pyx_ptype_8pysndlib_10generators_Krksin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Krksin
#define __pyx_ptype_8pysndlib_10generators_Absin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Absin
#define __pyx_ptype_8pysndlib_10generators_Abcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Abcos
#define __pyx_ptype_8pysndlib_10generators_R2k2cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_R2k2cos
#define __pyx_ptype_8pysndlib_10generators_Blsaw __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Blsaw
#define __pyx_ptype_8pysndlib_10generators_Asyfm __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Asyfm
#define __pyx_ptype_8pysndlib_10generators_Bess __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Bess
#define __pyx_ptype_8pysndlib_10generators_Jjcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Jjcos
#define __pyx_ptype_8pysndlib_10generators_J0evencos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_J0evencos
#define __pyx_ptype_8pysndlib_10generators_J2cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_J2cos
#define __pyx_ptype_8pysndlib_10generators_Jpcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Jpcos
#define __pyx_ptype_8pysndlib_10generators_Jncos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Jncos
#define __pyx_ptype_8pysndlib_10generators_J0j1cos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_J0j1cos
#define __pyx_ptype_8pysndlib_10generators_Jycos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Jycos
#define __pyx_ptype_8pysndlib_10generators_Jcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Jcos
#define __pyx_ptype_8pysndlib_10generators_Blackman __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Blackman
#define __pyx_ptype_8pysndlib_10generators_Fmssb __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Fmssb
#define __pyx_ptype_8pysndlib_10generators_K3sin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_K3sin
#define __pyx_ptype_8pysndlib_10generators_Izcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Izcos
#define __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave
#define __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave
#define __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave
#define __pyx_ptype_8pysndlib_10generators_AdjustableOscil __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_AdjustableOscil
#define __pyx_ptype_8pysndlib_10generators_RoundInterp __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_RoundInterp
#define __pyx_ptype_8pysndlib_10generators_Nchoosekcos __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Nchoosekcos
#define __pyx_ptype_8pysndlib_10generators_SincTrain __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_SincTrain
#define __pyx_ptype_8pysndlib_10generators_PinkNoise __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_PinkNoise
#define __pyx_ptype_8pysndlib_10generators_BrownNoise __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_BrownNoise
#define __pyx_ptype_8pysndlib_10generators_GreenNoise __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_GreenNoise
#define __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp
#define __pyx_ptype_8pysndlib_10generators_MovingSum __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_MovingSum
#define __pyx_ptype_8pysndlib_10generators_MovingVariance __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_MovingVariance
#define __pyx_ptype_8pysndlib_10generators_MovingRMS __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_MovingRMS
#define __pyx_ptype_8pysndlib_10generators_MovingLength __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_MovingLength
#define __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage
#define __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage
#define __pyx_ptype_8pysndlib_10generators_Tanhsin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Tanhsin
#define __pyx_ptype_8pysndlib_10generators_Noddsin __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_Noddsin
#define __pyx_ptype_8pysndlib_10generators_MovingFFT __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators_MovingFFT
#define __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max
#define __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max
#define __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max
#define __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env __pyx_mstate_global->__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env
#define __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y __pyx_mstate_global->__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y
#define __pyx_kp_u_ __pyx_mstate_global->__pyx_kp_u_
#define __pyx_n_s_Abcos __pyx_mstate_global->__pyx_n_s_Abcos
#define __pyx_n_s_Abcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Abcos___reduce_cython
#define __pyx_n_s_Abcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Abcos___setstate_cython
#define __pyx_n_s_Abcos_next __pyx_mstate_global->__pyx_n_s_Abcos_next
#define __pyx_n_s_Absin __pyx_mstate_global->__pyx_n_s_Absin
#define __pyx_n_s_Absin___reduce_cython __pyx_mstate_global->__pyx_n_s_Absin___reduce_cython
#define __pyx_n_s_Absin___setstate_cython __pyx_mstate_global->__pyx_n_s_Absin___setstate_cython
#define __pyx_n_s_Absin_next __pyx_mstate_global->__pyx_n_s_Absin_next
#define __pyx_n_s_AdjustableOscil __pyx_mstate_global->__pyx_n_s_AdjustableOscil
#define __pyx_n_s_AdjustableOscil___reduce_cython __pyx_mstate_global->__pyx_n_s_AdjustableOscil___reduce_cython
#define __pyx_n_s_AdjustableOscil___setstate_cytho __pyx_mstate_global->__pyx_n_s_AdjustableOscil___setstate_cytho
#define __pyx_n_s_AdjustableOscil_next __pyx_mstate_global->__pyx_n_s_AdjustableOscil_next
#define __pyx_n_s_AdjustableSawtoothWave __pyx_mstate_global->__pyx_n_s_AdjustableSawtoothWave
#define __pyx_n_s_AdjustableSawtoothWave___reduce __pyx_mstate_global->__pyx_n_s_AdjustableSawtoothWave___reduce
#define __pyx_n_s_AdjustableSawtoothWave___setstat __pyx_mstate_global->__pyx_n_s_AdjustableSawtoothWave___setstat
#define __pyx_n_s_AdjustableSawtoothWave_next __pyx_mstate_global->__pyx_n_s_AdjustableSawtoothWave_next
#define __pyx_n_s_AdjustableSquareWave __pyx_mstate_global->__pyx_n_s_AdjustableSquareWave
#define __pyx_n_s_AdjustableSquareWave___reduce_cy __pyx_mstate_global->__pyx_n_s_AdjustableSquareWave___reduce_cy
#define __pyx_n_s_AdjustableSquareWave___setstate __pyx_mstate_global->__pyx_n_s_AdjustableSquareWave___setstate
#define __pyx_n_s_AdjustableSquareWave_next __pyx_mstate_global->__pyx_n_s_AdjustableSquareWave_next
#define __pyx_n_s_AdjustableTriangleWave __pyx_mstate_global->__pyx_n_s_AdjustableTriangleWave
#define __pyx_n_s_AdjustableTriangleWave___reduce __pyx_mstate_global->__pyx_n_s_AdjustableTriangleWave___reduce
#define __pyx_n_s_AdjustableTriangleWave___setstat __pyx_mstate_global->__pyx_n_s_AdjustableTriangleWave___setstat
#define __pyx_n_s_AdjustableTriangleWave_next __pyx_mstate_global->__pyx_n_s_AdjustableTriangleWave_next
#define __pyx_n_s_Asyfm __pyx_mstate_global->__pyx_n_s_Asyfm
#define __pyx_n_s_Asyfm___reduce_cython __pyx_mstate_global->__pyx_n_s_Asyfm___reduce_cython
#define __pyx_n_s_Asyfm___setstate_cython __pyx_mstate_global->__pyx_n_s_Asyfm___setstate_cython
#define __pyx_n_s_Asyfm_next __pyx_mstate_global->__pyx_n_s_Asyfm_next
#define __pyx_n_s_Asyfm_next_i __pyx_mstate_global->__pyx_n_s_Asyfm_next_i
#define __pyx_n_s_Asyfm_next_j __pyx_mstate_global->__pyx_n_s_Asyfm_next_j
#define __pyx_n_s_BOTH_KINDS __pyx_mstate_global->__pyx_n_s_BOTH_KINDS
#define __pyx_n_s_Bess __pyx_mstate_global->__pyx_n_s_Bess
#define __pyx_n_s_Bess___reduce_cython __pyx_mstate_global->__pyx_n_s_Bess___reduce_cython
#define __pyx_n_s_Bess___setstate_cython __pyx_mstate_global->__pyx_n_s_Bess___setstate_cython
#define __pyx_n_s_Bess_next __pyx_mstate_global->__pyx_n_s_Bess_next
#define __pyx_n_s_Blackman __pyx_mstate_global->__pyx_n_s_Blackman
#define __pyx_n_s_Blackman___reduce_cython __pyx_mstate_global->__pyx_n_s_Blackman___reduce_cython
#define __pyx_n_s_Blackman___setstate_cython __pyx_mstate_global->__pyx_n_s_Blackman___setstate_cython
#define __pyx_n_s_Blackman_mus_reset __pyx_mstate_global->__pyx_n_s_Blackman_mus_reset
#define __pyx_n_s_Blackman_next __pyx_mstate_global->__pyx_n_s_Blackman_next
#define __pyx_n_s_Blsaw __pyx_mstate_global->__pyx_n_s_Blsaw
#define __pyx_n_s_Blsaw___reduce_cython __pyx_mstate_global->__pyx_n_s_Blsaw___reduce_cython
#define __pyx_n_s_Blsaw___setstate_cython __pyx_mstate_global->__pyx_n_s_Blsaw___setstate_cython
#define __pyx_n_s_Blsaw_next __pyx_mstate_global->__pyx_n_s_Blsaw_next
#define __pyx_n_s_BrownNoise __pyx_mstate_global->__pyx_n_s_BrownNoise
#define __pyx_n_s_BrownNoise___reduce_cython __pyx_mstate_global->__pyx_n_s_BrownNoise___reduce_cython
#define __pyx_n_s_BrownNoise___setstate_cython __pyx_mstate_global->__pyx_n_s_BrownNoise___setstate_cython
#define __pyx_n_s_BrownNoise_next __pyx_mstate_global->__pyx_n_s_BrownNoise_next
#define __pyx_n_s_CLMGenerator __pyx_mstate_global->__pyx_n_s_CLMGenerator
#define __pyx_n_s_CLMGenerator___reduce_cython __pyx_mstate_global->__pyx_n_s_CLMGenerator___reduce_cython
#define __pyx_n_s_CLMGenerator___setstate_cython __pyx_mstate_global->__pyx_n_s_CLMGenerator___setstate_cython
#define __pyx_n_s_CLMGenerator_next __pyx_mstate_global->__pyx_n_s_CLMGenerator_next
#define __pyx_n_s_Dblsum __pyx_mstate_global->__pyx_n_s_Dblsum
#define __pyx_n_s_Dblsum___reduce_cython __pyx_mstate_global->__pyx_n_s_Dblsum___reduce_cython
#define __pyx_n_s_Dblsum___setstate_cython __pyx_mstate_global->__pyx_n_s_Dblsum___setstate_cython
#define __pyx_n_s_Dblsum_next __pyx_mstate_global->__pyx_n_s_Dblsum_next
#define __pyx_n_s_EITHER_KIND __pyx_mstate_global->__pyx_n_s_EITHER_KIND
#define __pyx_n_s_Eoddcos __pyx_mstate_global->__pyx_n_s_Eoddcos
#define __pyx_n_s_Eoddcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Eoddcos___reduce_cython
#define __pyx_n_s_Eoddcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Eoddcos___setstate_cython
#define __pyx_n_s_Eoddcos_next __pyx_mstate_global->__pyx_n_s_Eoddcos_next
#define __pyx_n_s_Ercos __pyx_mstate_global->__pyx_n_s_Ercos
#define __pyx_n_s_Ercos___reduce_cython __pyx_mstate_global->__pyx_n_s_Ercos___reduce_cython
#define __pyx_n_s_Ercos___setstate_cython __pyx_mstate_global->__pyx_n_s_Ercos___setstate_cython
#define __pyx_n_s_Ercos_next __pyx_mstate_global->__pyx_n_s_Ercos_next
#define __pyx_n_s_Erssb __pyx_mstate_global->__pyx_n_s_Erssb
#define __pyx_n_s_Erssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Erssb___reduce_cython
#define __pyx_n_s_Erssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Erssb___setstate_cython
#define __pyx_n_s_Erssb_next __pyx_mstate_global->__pyx_n_s_Erssb_next
#define __pyx_n_s_ExponentiallyWeightedMovingAvera __pyx_mstate_global->__pyx_n_s_ExponentiallyWeightedMovingAvera
#define __pyx_n_s_ExponentiallyWeightedMovingAvera_2 __pyx_mstate_global->__pyx_n_s_ExponentiallyWeightedMovingAvera_2
#define __pyx_n_s_ExponentiallyWeightedMovingAvera_3 __pyx_mstate_global->__pyx_n_s_ExponentiallyWeightedMovingAvera_3
#define __pyx_n_s_ExponentiallyWeightedMovingAvera_4 __pyx_mstate_global->__pyx_n_s_ExponentiallyWeightedMovingAvera_4
#define __pyx_n_s_FIRST_KIND __pyx_mstate_global->__pyx_n_s_FIRST_KIND
#define __pyx_n_s_Fmssb __pyx_mstate_global->__pyx_n_s_Fmssb
#define __pyx_n_s_Fmssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Fmssb___reduce_cython
#define __pyx_n_s_Fmssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Fmssb___setstate_cython
#define __pyx_n_s_Fmssb_next __pyx_mstate_global->__pyx_n_s_Fmssb_next
#define __pyx_n_s_GreenNoise __pyx_mstate_global->__pyx_n_s_GreenNoise
#define __pyx_n_s_GreenNoiseInterp __pyx_mstate_global->__pyx_n_s_GreenNoiseInterp
#define __pyx_n_s_GreenNoiseInterp___reduce_cython __pyx_mstate_global->__pyx_n_s_GreenNoiseInterp___reduce_cython
#define __pyx_n_s_GreenNoiseInterp___setstate_cyth __pyx_mstate_global->__pyx_n_s_GreenNoiseInterp___setstate_cyth
#define __pyx_n_s_GreenNoiseInterp_next __pyx_mstate_global->__pyx_n_s_GreenNoiseInterp_next
#define __pyx_n_s_GreenNoise___reduce_cython __pyx_mstate_global->__pyx_n_s_GreenNoise___reduce_cython
#define __pyx_n_s_GreenNoise___setstate_cython __pyx_mstate_global->__pyx_n_s_GreenNoise___setstate_cython
#define __pyx_n_s_GreenNoise_next __pyx_mstate_global->__pyx_n_s_GreenNoise_next
#define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8
#define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9
#define __pyx_n_s_Izcos __pyx_mstate_global->__pyx_n_s_Izcos
#define __pyx_n_s_Izcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Izcos___reduce_cython
#define __pyx_n_s_Izcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Izcos___setstate_cython
#define __pyx_n_s_Izcos_mus_reset __pyx_mstate_global->__pyx_n_s_Izcos_mus_reset
#define __pyx_n_s_Izcos_next __pyx_mstate_global->__pyx_n_s_Izcos_next
#define __pyx_n_s_J0evencos __pyx_mstate_global->__pyx_n_s_J0evencos
#define __pyx_n_s_J0evencos___reduce_cython __pyx_mstate_global->__pyx_n_s_J0evencos___reduce_cython
#define __pyx_n_s_J0evencos___setstate_cython __pyx_mstate_global->__pyx_n_s_J0evencos___setstate_cython
#define __pyx_n_s_J0evencos_next __pyx_mstate_global->__pyx_n_s_J0evencos_next
#define __pyx_n_s_J0j1cos __pyx_mstate_global->__pyx_n_s_J0j1cos
#define __pyx_n_s_J0j1cos___reduce_cython __pyx_mstate_global->__pyx_n_s_J0j1cos___reduce_cython
#define __pyx_n_s_J0j1cos___setstate_cython __pyx_mstate_global->__pyx_n_s_J0j1cos___setstate_cython
#define __pyx_n_s_J0j1cos_next __pyx_mstate_global->__pyx_n_s_J0j1cos_next
#define __pyx_n_s_J2cos __pyx_mstate_global->__pyx_n_s_J2cos
#define __pyx_n_s_J2cos___reduce_cython __pyx_mstate_global->__pyx_n_s_J2cos___reduce_cython
#define __pyx_n_s_J2cos___setstate_cython __pyx_mstate_global->__pyx_n_s_J2cos___setstate_cython
#define __pyx_n_s_J2cos_next __pyx_mstate_global->__pyx_n_s_J2cos_next
#define __pyx_n_s_Jcos __pyx_mstate_global->__pyx_n_s_Jcos
#define __pyx_n_s_Jcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Jcos___reduce_cython
#define __pyx_n_s_Jcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Jcos___setstate_cython
#define __pyx_n_s_Jcos_next __pyx_mstate_global->__pyx_n_s_Jcos_next
#define __pyx_n_s_Jjcos __pyx_mstate_global->__pyx_n_s_Jjcos
#define __pyx_n_s_Jjcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Jjcos___reduce_cython
#define __pyx_n_s_Jjcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Jjcos___setstate_cython
#define __pyx_n_s_Jjcos_next __pyx_mstate_global->__pyx_n_s_Jjcos_next
#define __pyx_n_s_Jncos __pyx_mstate_global->__pyx_n_s_Jncos
#define __pyx_n_s_Jncos___reduce_cython __pyx_mstate_global->__pyx_n_s_Jncos___reduce_cython
#define __pyx_n_s_Jncos___setstate_cython __pyx_mstate_global->__pyx_n_s_Jncos___setstate_cython
#define __pyx_n_s_Jncos_next __pyx_mstate_global->__pyx_n_s_Jncos_next
#define __pyx_n_s_Jpcos __pyx_mstate_global->__pyx_n_s_Jpcos
#define __pyx_n_s_Jpcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Jpcos___reduce_cython
#define __pyx_n_s_Jpcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Jpcos___setstate_cython
#define __pyx_n_s_Jpcos_next __pyx_mstate_global->__pyx_n_s_Jpcos_next
#define __pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va __pyx_mstate_global->__pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va
#define __pyx_n_s_Jycos __pyx_mstate_global->__pyx_n_s_Jycos
#define __pyx_n_s_Jycos___reduce_cython __pyx_mstate_global->__pyx_n_s_Jycos___reduce_cython
#define __pyx_n_s_Jycos___setstate_cython __pyx_mstate_global->__pyx_n_s_Jycos___setstate_cython
#define __pyx_n_s_Jycos_next __pyx_mstate_global->__pyx_n_s_Jycos_next
#define __pyx_n_s_K2cos __pyx_mstate_global->__pyx_n_s_K2cos
#define __pyx_n_s_K2cos___reduce_cython __pyx_mstate_global->__pyx_n_s_K2cos___reduce_cython
#define __pyx_n_s_K2cos___setstate_cython __pyx_mstate_global->__pyx_n_s_K2cos___setstate_cython
#define __pyx_n_s_K2cos_next __pyx_mstate_global->__pyx_n_s_K2cos_next
#define __pyx_n_s_K2sin __pyx_mstate_global->__pyx_n_s_K2sin
#define __pyx_n_s_K2sin___reduce_cython __pyx_mstate_global->__pyx_n_s_K2sin___reduce_cython
#define __pyx_n_s_K2sin___setstate_cython __pyx_mstate_global->__pyx_n_s_K2sin___setstate_cython
#define __pyx_n_s_K2sin_next __pyx_mstate_global->__pyx_n_s_K2sin_next
#define __pyx_n_s_K2ssb __pyx_mstate_global->__pyx_n_s_K2ssb
#define __pyx_n_s_K2ssb___reduce_cython __pyx_mstate_global->__pyx_n_s_K2ssb___reduce_cython
#define __pyx_n_s_K2ssb___setstate_cython __pyx_mstate_global->__pyx_n_s_K2ssb___setstate_cython
#define __pyx_n_s_K2ssb_next __pyx_mstate_global->__pyx_n_s_K2ssb_next
#define __pyx_n_s_K3sin __pyx_mstate_global->__pyx_n_s_K3sin
#define __pyx_n_s_K3sin___reduce_cython __pyx_mstate_global->__pyx_n_s_K3sin___reduce_cython
#define __pyx_n_s_K3sin___setstate_cython __pyx_mstate_global->__pyx_n_s_K3sin___setstate_cython
#define __pyx_n_s_K3sin_mus_reset __pyx_mstate_global->__pyx_n_s_K3sin_mus_reset
#define __pyx_n_s_K3sin_next __pyx_mstate_global->__pyx_n_s_K3sin_next
#define __pyx_n_s_Krksin __pyx_mstate_global->__pyx_n_s_Krksin
#define __pyx_n_s_Krksin___reduce_cython __pyx_mstate_global->__pyx_n_s_Krksin___reduce_cython
#define __pyx_n_s_Krksin___setstate_cython __pyx_mstate_global->__pyx_n_s_Krksin___setstate_cython
#define __pyx_n_s_Krksin_next __pyx_mstate_global->__pyx_n_s_Krksin_next
#define __pyx_n_s_MovingFFT __pyx_mstate_global->__pyx_n_s_MovingFFT
#define __pyx_n_s_MovingFFT___reduce_cython __pyx_mstate_global->__pyx_n_s_MovingFFT___reduce_cython
#define __pyx_n_s_MovingFFT___setstate_cython __pyx_mstate_global->__pyx_n_s_MovingFFT___setstate_cython
#define __pyx_n_s_MovingFFT_mus_run __pyx_mstate_global->__pyx_n_s_MovingFFT_mus_run
#define __pyx_n_s_MovingFFT_next __pyx_mstate_global->__pyx_n_s_MovingFFT_next
#define __pyx_n_s_MovingLength __pyx_mstate_global->__pyx_n_s_MovingLength
#define __pyx_n_s_MovingLength___reduce_cython __pyx_mstate_global->__pyx_n_s_MovingLength___reduce_cython
#define __pyx_n_s_MovingLength___setstate_cython __pyx_mstate_global->__pyx_n_s_MovingLength___setstate_cython
#define __pyx_n_s_MovingRMS __pyx_mstate_global->__pyx_n_s_MovingRMS
#define __pyx_n_s_MovingRMS___reduce_cython __pyx_mstate_global->__pyx_n_s_MovingRMS___reduce_cython
#define __pyx_n_s_MovingRMS___setstate_cython __pyx_mstate_global->__pyx_n_s_MovingRMS___setstate_cython
#define __pyx_n_s_MovingRMS_next __pyx_mstate_global->__pyx_n_s_MovingRMS_next
#define __pyx_n_s_MovingSum __pyx_mstate_global->__pyx_n_s_MovingSum
#define __pyx_n_s_MovingSum___reduce_cython __pyx_mstate_global->__pyx_n_s_MovingSum___reduce_cython
#define __pyx_n_s_MovingSum___setstate_cython __pyx_mstate_global->__pyx_n_s_MovingSum___setstate_cython
#define __pyx_n_s_MovingSum_next __pyx_mstate_global->__pyx_n_s_MovingSum_next
#define __pyx_n_s_MovingVariance __pyx_mstate_global->__pyx_n_s_MovingVariance
#define __pyx_n_s_MovingVariance___reduce_cython __pyx_mstate_global->__pyx_n_s_MovingVariance___reduce_cython
#define __pyx_n_s_MovingVariance___setstate_cython __pyx_mstate_global->__pyx_n_s_MovingVariance___setstate_cython
#define __pyx_n_s_MovingVariance_next __pyx_mstate_global->__pyx_n_s_MovingVariance_next
#define __pyx_n_s_N1cos __pyx_mstate_global->__pyx_n_s_N1cos
#define __pyx_n_s_N1cos___reduce_cython __pyx_mstate_global->__pyx_n_s_N1cos___reduce_cython
#define __pyx_n_s_N1cos___setstate_cython __pyx_mstate_global->__pyx_n_s_N1cos___setstate_cython
#define __pyx_n_s_N1cos_next __pyx_mstate_global->__pyx_n_s_N1cos_next
#define __pyx_n_s_Nchoosekcos __pyx_mstate_global->__pyx_n_s_Nchoosekcos
#define __pyx_n_s_Nchoosekcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Nchoosekcos___reduce_cython
#define __pyx_n_s_Nchoosekcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Nchoosekcos___setstate_cython
#define __pyx_n_s_Nchoosekcos_next __pyx_mstate_global->__pyx_n_s_Nchoosekcos_next
#define __pyx_n_s_Ncos2 __pyx_mstate_global->__pyx_n_s_Ncos2
#define __pyx_n_s_Ncos2___reduce_cython __pyx_mstate_global->__pyx_n_s_Ncos2___reduce_cython
#define __pyx_n_s_Ncos2___setstate_cython __pyx_mstate_global->__pyx_n_s_Ncos2___setstate_cython
#define __pyx_n_s_Ncos2_next __pyx_mstate_global->__pyx_n_s_Ncos2_next
#define __pyx_n_s_Ncos4 __pyx_mstate_global->__pyx_n_s_Ncos4
#define __pyx_n_s_Ncos4___reduce_cython __pyx_mstate_global->__pyx_n_s_Ncos4___reduce_cython
#define __pyx_n_s_Ncos4___setstate_cython __pyx_mstate_global->__pyx_n_s_Ncos4___setstate_cython
#define __pyx_n_s_Ncos4_next __pyx_mstate_global->__pyx_n_s_Ncos4_next
#define __pyx_n_s_Ncos5 __pyx_mstate_global->__pyx_n_s_Ncos5
#define __pyx_n_s_Ncos5___reduce_cython __pyx_mstate_global->__pyx_n_s_Ncos5___reduce_cython
#define __pyx_n_s_Ncos5___setstate_cython __pyx_mstate_global->__pyx_n_s_Ncos5___setstate_cython
#define __pyx_n_s_Ncos5_next __pyx_mstate_global->__pyx_n_s_Ncos5_next
#define __pyx_n_s_Nkssb __pyx_mstate_global->__pyx_n_s_Nkssb
#define __pyx_n_s_Nkssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Nkssb___reduce_cython
#define __pyx_n_s_Nkssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Nkssb___setstate_cython
#define __pyx_n_s_Nkssb_call_interp __pyx_mstate_global->__pyx_n_s_Nkssb_call_interp
#define __pyx_n_s_Nkssb_next __pyx_mstate_global->__pyx_n_s_Nkssb_next
#define __pyx_n_s_Noddcos __pyx_mstate_global->__pyx_n_s_Noddcos
#define __pyx_n_s_Noddcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Noddcos___reduce_cython
#define __pyx_n_s_Noddcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Noddcos___setstate_cython
#define __pyx_n_s_Noddcos_next __pyx_mstate_global->__pyx_n_s_Noddcos_next
#define __pyx_n_s_Noddsin __pyx_mstate_global->__pyx_n_s_Noddsin
#define __pyx_n_s_Noddsin___reduce_cython __pyx_mstate_global->__pyx_n_s_Noddsin___reduce_cython
#define __pyx_n_s_Noddsin___setstate_cython __pyx_mstate_global->__pyx_n_s_Noddsin___setstate_cython
#define __pyx_n_s_Noddsin_next __pyx_mstate_global->__pyx_n_s_Noddsin_next
#define __pyx_n_s_Noddssb __pyx_mstate_global->__pyx_n_s_Noddssb
#define __pyx_n_s_Noddssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Noddssb___reduce_cython
#define __pyx_n_s_Noddssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Noddssb___setstate_cython
#define __pyx_n_s_Noddssb_next __pyx_mstate_global->__pyx_n_s_Noddssb_next
#define __pyx_n_s_Npcos __pyx_mstate_global->__pyx_n_s_Npcos
#define __pyx_n_s_Npcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Npcos___reduce_cython
#define __pyx_n_s_Npcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Npcos___setstate_cython
#define __pyx_n_s_Npcos_next __pyx_mstate_global->__pyx_n_s_Npcos_next
#define __pyx_n_s_Npos1cos __pyx_mstate_global->__pyx_n_s_Npos1cos
#define __pyx_n_s_Npos1cos___reduce_cython __pyx_mstate_global->__pyx_n_s_Npos1cos___reduce_cython
#define __pyx_n_s_Npos1cos___setstate_cython __pyx_mstate_global->__pyx_n_s_Npos1cos___setstate_cython
#define __pyx_n_s_Npos1cos_next __pyx_mstate_global->__pyx_n_s_Npos1cos_next
#define __pyx_n_s_Npos3cos __pyx_mstate_global->__pyx_n_s_Npos3cos
#define __pyx_n_s_Npos3cos___reduce_cython __pyx_mstate_global->__pyx_n_s_Npos3cos___reduce_cython
#define __pyx_n_s_Npos3cos___setstate_cython __pyx_mstate_global->__pyx_n_s_Npos3cos___setstate_cython
#define __pyx_n_s_Npos3cos_next __pyx_mstate_global->__pyx_n_s_Npos3cos_next
#define __pyx_n_s_Nrcos __pyx_mstate_global->__pyx_n_s_Nrcos
#define __pyx_n_s_Nrcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Nrcos___reduce_cython
#define __pyx_n_s_Nrcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Nrcos___setstate_cython
#define __pyx_n_s_Nrcos_next __pyx_mstate_global->__pyx_n_s_Nrcos_next
#define __pyx_n_s_Nrssb __pyx_mstate_global->__pyx_n_s_Nrssb
#define __pyx_n_s_Nrssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Nrssb___reduce_cython
#define __pyx_n_s_Nrssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Nrssb___setstate_cython
#define __pyx_n_s_Nrssb_call_interp __pyx_mstate_global->__pyx_n_s_Nrssb_call_interp
#define __pyx_n_s_Nrssb_next __pyx_mstate_global->__pyx_n_s_Nrssb_next
#define __pyx_n_s_Nsin5 __pyx_mstate_global->__pyx_n_s_Nsin5
#define __pyx_n_s_Nsin5___reduce_cython __pyx_mstate_global->__pyx_n_s_Nsin5___reduce_cython
#define __pyx_n_s_Nsin5___setstate_cython __pyx_mstate_global->__pyx_n_s_Nsin5___setstate_cython
#define __pyx_n_s_Nsin5_next __pyx_mstate_global->__pyx_n_s_Nsin5_next
#define __pyx_n_s_Nsincos __pyx_mstate_global->__pyx_n_s_Nsincos
#define __pyx_n_s_Nsincos___reduce_cython __pyx_mstate_global->__pyx_n_s_Nsincos___reduce_cython
#define __pyx_n_s_Nsincos___setstate_cython __pyx_mstate_global->__pyx_n_s_Nsincos___setstate_cython
#define __pyx_n_s_Nsincos_next __pyx_mstate_global->__pyx_n_s_Nsincos_next
#define __pyx_n_s_Nssb __pyx_mstate_global->__pyx_n_s_Nssb
#define __pyx_n_s_Nssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Nssb___reduce_cython
#define __pyx_n_s_Nssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Nssb___setstate_cython
#define __pyx_n_s_Nssb_next __pyx_mstate_global->__pyx_n_s_Nssb_next
#define __pyx_n_s_Nxy1cos __pyx_mstate_global->__pyx_n_s_Nxy1cos
#define __pyx_n_s_Nxy1cos___reduce_cython __pyx_mstate_global->__pyx_n_s_Nxy1cos___reduce_cython
#define __pyx_n_s_Nxy1cos___setstate_cython __pyx_mstate_global->__pyx_n_s_Nxy1cos___setstate_cython
#define __pyx_n_s_Nxy1cos_next __pyx_mstate_global->__pyx_n_s_Nxy1cos_next
#define __pyx_n_s_Nxy1sin __pyx_mstate_global->__pyx_n_s_Nxy1sin
#define __pyx_n_s_Nxy1sin___reduce_cython __pyx_mstate_global->__pyx_n_s_Nxy1sin___reduce_cython
#define __pyx_n_s_Nxy1sin___setstate_cython __pyx_mstate_global->__pyx_n_s_Nxy1sin___setstate_cython
#define __pyx_n_s_Nxy1sin_next __pyx_mstate_global->__pyx_n_s_Nxy1sin_next
#define __pyx_n_s_Nxycos __pyx_mstate_global->__pyx_n_s_Nxycos
#define __pyx_n_s_Nxycos___reduce_cython __pyx_mstate_global->__pyx_n_s_Nxycos___reduce_cython
#define __pyx_n_s_Nxycos___setstate_cython __pyx_mstate_global->__pyx_n_s_Nxycos___setstate_cython
#define __pyx_n_s_Nxycos_next __pyx_mstate_global->__pyx_n_s_Nxycos_next
#define __pyx_n_s_Nxysin __pyx_mstate_global->__pyx_n_s_Nxysin
#define __pyx_n_s_Nxysin___reduce_cython __pyx_mstate_global->__pyx_n_s_Nxysin___reduce_cython
#define __pyx_n_s_Nxysin___setstate_cython __pyx_mstate_global->__pyx_n_s_Nxysin___setstate_cython
#define __pyx_n_s_Nxysin_next __pyx_mstate_global->__pyx_n_s_Nxysin_next
#define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError
#define __pyx_n_s_PinkNoise __pyx_mstate_global->__pyx_n_s_PinkNoise
#define __pyx_n_s_PinkNoise___reduce_cython __pyx_mstate_global->__pyx_n_s_PinkNoise___reduce_cython
#define __pyx_n_s_PinkNoise___setstate_cython __pyx_mstate_global->__pyx_n_s_PinkNoise___setstate_cython
#define __pyx_n_s_PinkNoise_next __pyx_mstate_global->__pyx_n_s_PinkNoise_next
#define __pyx_n_s_Polynomial __pyx_mstate_global->__pyx_n_s_Polynomial
#define __pyx_n_s_Pyx_CFunc_double__lParenobject __pyx_mstate_global->__pyx_n_s_Pyx_CFunc_double__lParenobject
#define __pyx_n_s_R2cos __pyx_mstate_global->__pyx_n_s_R2cos
#define __pyx_n_s_R2cos___reduce_cython __pyx_mstate_global->__pyx_n_s_R2cos___reduce_cython
#define __pyx_n_s_R2cos___setstate_cython __pyx_mstate_global->__pyx_n_s_R2cos___setstate_cython
#define __pyx_n_s_R2cos_next __pyx_mstate_global->__pyx_n_s_R2cos_next
#define __pyx_n_s_R2k2cos __pyx_mstate_global->__pyx_n_s_R2k2cos
#define __pyx_n_s_R2k2cos___reduce_cython __pyx_mstate_global->__pyx_n_s_R2k2cos___reduce_cython
#define __pyx_n_s_R2k2cos___setstate_cython __pyx_mstate_global->__pyx_n_s_R2k2cos___setstate_cython
#define __pyx_n_s_R2k2cos_next __pyx_mstate_global->__pyx_n_s_R2k2cos_next
#define __pyx_n_s_R2kfcos __pyx_mstate_global->__pyx_n_s_R2kfcos
#define __pyx_n_s_R2kfcos___reduce_cython __pyx_mstate_global->__pyx_n_s_R2kfcos___reduce_cython
#define __pyx_n_s_R2kfcos___setstate_cython __pyx_mstate_global->__pyx_n_s_R2kfcos___setstate_cython
#define __pyx_n_s_R2kfcos_next __pyx_mstate_global->__pyx_n_s_R2kfcos_next
#define __pyx_n_s_R2ssb __pyx_mstate_global->__pyx_n_s_R2ssb
#define __pyx_n_s_R2ssb___reduce_cython __pyx_mstate_global->__pyx_n_s_R2ssb___reduce_cython
#define __pyx_n_s_R2ssb___setstate_cython __pyx_mstate_global->__pyx_n_s_R2ssb___setstate_cython
#define __pyx_n_s_R2ssb_next __pyx_mstate_global->__pyx_n_s_R2ssb_next
#define __pyx_n_s_Rcos __pyx_mstate_global->__pyx_n_s_Rcos
#define __pyx_n_s_Rcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Rcos___reduce_cython
#define __pyx_n_s_Rcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Rcos___setstate_cython
#define __pyx_n_s_Rcos_next __pyx_mstate_global->__pyx_n_s_Rcos_next
#define __pyx_n_s_Rkcos __pyx_mstate_global->__pyx_n_s_Rkcos
#define __pyx_n_s_Rkcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Rkcos___reduce_cython
#define __pyx_n_s_Rkcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Rkcos___setstate_cython
#define __pyx_n_s_Rkcos_next __pyx_mstate_global->__pyx_n_s_Rkcos_next
#define __pyx_n_s_Rkfcos __pyx_mstate_global->__pyx_n_s_Rkfcos
#define __pyx_n_s_Rkfcos___reduce_cython __pyx_mstate_global->__pyx_n_s_Rkfcos___reduce_cython
#define __pyx_n_s_Rkfcos___setstate_cython __pyx_mstate_global->__pyx_n_s_Rkfcos___setstate_cython
#define __pyx_n_s_Rkfcos_next __pyx_mstate_global->__pyx_n_s_Rkfcos_next
#define __pyx_n_s_Rkfssb __pyx_mstate_global->__pyx_n_s_Rkfssb
#define __pyx_n_s_Rkfssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Rkfssb___reduce_cython
#define __pyx_n_s_Rkfssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Rkfssb___setstate_cython
#define __pyx_n_s_Rkfssb_next __pyx_mstate_global->__pyx_n_s_Rkfssb_next
#define __pyx_n_s_Rkoddssb __pyx_mstate_global->__pyx_n_s_Rkoddssb
#define __pyx_n_s_Rkoddssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Rkoddssb___reduce_cython
#define __pyx_n_s_Rkoddssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Rkoddssb___setstate_cython
#define __pyx_n_s_Rkoddssb_next __pyx_mstate_global->__pyx_n_s_Rkoddssb_next
#define __pyx_n_s_Rksin __pyx_mstate_global->__pyx_n_s_Rksin
#define __pyx_n_s_Rksin___reduce_cython __pyx_mstate_global->__pyx_n_s_Rksin___reduce_cython
#define __pyx_n_s_Rksin___setstate_cython __pyx_mstate_global->__pyx_n_s_Rksin___setstate_cython
#define __pyx_n_s_Rksin_next __pyx_mstate_global->__pyx_n_s_Rksin_next
#define __pyx_n_s_Rkssb __pyx_mstate_global->__pyx_n_s_Rkssb
#define __pyx_n_s_Rkssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Rkssb___reduce_cython
#define __pyx_n_s_Rkssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Rkssb___setstate_cython
#define __pyx_n_s_Rkssb_next __pyx_mstate_global->__pyx_n_s_Rkssb_next
#define __pyx_n_s_RoundInterp __pyx_mstate_global->__pyx_n_s_RoundInterp
#define __pyx_n_s_RoundInterp___reduce_cython __pyx_mstate_global->__pyx_n_s_RoundInterp___reduce_cython
#define __pyx_n_s_RoundInterp___setstate_cython __pyx_mstate_global->__pyx_n_s_RoundInterp___setstate_cython
#define __pyx_n_s_RoundInterp_next __pyx_mstate_global->__pyx_n_s_RoundInterp_next
#define __pyx_n_s_Rssb __pyx_mstate_global->__pyx_n_s_Rssb
#define __pyx_n_s_Rssb___reduce_cython __pyx_mstate_global->__pyx_n_s_Rssb___reduce_cython
#define __pyx_n_s_Rssb___setstate_cython __pyx_mstate_global->__pyx_n_s_Rssb___setstate_cython
#define __pyx_n_s_Rssb_call_interp __pyx_mstate_global->__pyx_n_s_Rssb_call_interp
#define __pyx_n_s_Rssb_next __pyx_mstate_global->__pyx_n_s_Rssb_next
#define __pyx_n_s_Rxycos __pyx_mstate_global->__pyx_n_s_Rxycos
#define __pyx_n_s_Rxycos___reduce_cython __pyx_mstate_global->__pyx_n_s_Rxycos___reduce_cython
#define __pyx_n_s_Rxycos___setstate_cython __pyx_mstate_global->__pyx_n_s_Rxycos___setstate_cython
#define __pyx_n_s_Rxycos_next __pyx_mstate_global->__pyx_n_s_Rxycos_next
#define __pyx_n_s_Rxysin __pyx_mstate_global->__pyx_n_s_Rxysin
#define __pyx_n_s_Rxysin___reduce_cython __pyx_mstate_global->__pyx_n_s_Rxysin___reduce_cython
#define __pyx_n_s_Rxysin___setstate_cython __pyx_mstate_global->__pyx_n_s_Rxysin___setstate_cython
#define __pyx_n_s_Rxysin_next __pyx_mstate_global->__pyx_n_s_Rxysin_next
#define __pyx_n_s_SECOND_KIND __pyx_mstate_global->__pyx_n_s_SECOND_KIND
#define __pyx_n_s_SafeRxycos __pyx_mstate_global->__pyx_n_s_SafeRxycos
#define __pyx_n_s_SafeRxycos___reduce_cython __pyx_mstate_global->__pyx_n_s_SafeRxycos___reduce_cython
#define __pyx_n_s_SafeRxycos___setstate_cython __pyx_mstate_global->__pyx_n_s_SafeRxycos___setstate_cython
#define __pyx_n_s_SafeRxycos_clamp_rxycos_r __pyx_mstate_global->__pyx_n_s_SafeRxycos_clamp_rxycos_r
#define __pyx_n_s_SafeRxycos_next __pyx_mstate_global->__pyx_n_s_SafeRxycos_next
#define __pyx_n_s_SincTrain __pyx_mstate_global->__pyx_n_s_SincTrain
#define __pyx_n_s_SincTrain___reduce_cython __pyx_mstate_global->__pyx_n_s_SincTrain___reduce_cython
#define __pyx_n_s_SincTrain___setstate_cython __pyx_mstate_global->__pyx_n_s_SincTrain___setstate_cython
#define __pyx_n_s_SincTrain_next __pyx_mstate_global->__pyx_n_s_SincTrain_next
#define __pyx_n_s_Tanhsin __pyx_mstate_global->__pyx_n_s_Tanhsin
#define __pyx_n_s_Tanhsin___reduce_cython __pyx_mstate_global->__pyx_n_s_Tanhsin___reduce_cython
#define __pyx_n_s_Tanhsin___setstate_cython __pyx_mstate_global->__pyx_n_s_Tanhsin___setstate_cython
#define __pyx_n_s_Tanhsin_next __pyx_mstate_global->__pyx_n_s_Tanhsin_next
#define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
#define __pyx_n_s_WeightedMovingAverage __pyx_mstate_global->__pyx_n_s_WeightedMovingAverage
#define __pyx_n_s_WeightedMovingAverage___reduce_c __pyx_mstate_global->__pyx_n_s_WeightedMovingAverage___reduce_c
#define __pyx_n_s_WeightedMovingAverage___setstate __pyx_mstate_global->__pyx_n_s_WeightedMovingAverage___setstate
#define __pyx_n_s_WeightedMovingAverage_next __pyx_mstate_global->__pyx_n_s_WeightedMovingAverage_next
#define __pyx_n_s__2 __pyx_mstate_global->__pyx_n_s__2
#define __pyx_n_s__935 __pyx_mstate_global->__pyx_n_s__935
#define __pyx_n_s_a __pyx_mstate_global->__pyx_n_s_a
#define __pyx_n_s_a2 __pyx_mstate_global->__pyx_n_s_a2
#define __pyx_kp_u_a_2 __pyx_mstate_global->__pyx_kp_u_a_2
#define __pyx_n_s_abcos __pyx_mstate_global->__pyx_n_s_abcos
#define __pyx_n_s_absin __pyx_mstate_global->__pyx_n_s_absin
#define __pyx_n_s_acos __pyx_mstate_global->__pyx_n_s_acos
#define __pyx_n_s_adjustable_oscil __pyx_mstate_global->__pyx_n_s_adjustable_oscil
#define __pyx_n_s_adjustable_sawtooth_wave __pyx_mstate_global->__pyx_n_s_adjustable_sawtooth_wave
#define __pyx_n_s_adjustable_square_wave __pyx_mstate_global->__pyx_n_s_adjustable_square_wave
#define __pyx_n_s_adjustable_triangle_wave __pyx_mstate_global->__pyx_n_s_adjustable_triangle_wave
#define __pyx_n_s_amplitude __pyx_mstate_global->__pyx_n_s_amplitude
#define __pyx_n_s_angle __pyx_mstate_global->__pyx_n_s_angle
#define __pyx_n_s_arg1 __pyx_mstate_global->__pyx_n_s_arg1
#define __pyx_n_s_arg2 __pyx_mstate_global->__pyx_n_s_arg2
#define __pyx_n_s_array __pyx_mstate_global->__pyx_n_s_array
#define __pyx_n_s_asyfm __pyx_mstate_global->__pyx_n_s_asyfm
#define __pyx_n_s_asyfm_i __pyx_mstate_global->__pyx_n_s_asyfm_i
#define __pyx_n_s_asyfm_j __pyx_mstate_global->__pyx_n_s_asyfm_j
#define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
#define __pyx_n_s_atan2 __pyx_mstate_global->__pyx_n_s_atan2
#define __pyx_n_s_b __pyx_mstate_global->__pyx_n_s_b
#define __pyx_n_s_bes_i0 __pyx_mstate_global->__pyx_n_s_bes_i0
#define __pyx_n_s_bess __pyx_mstate_global->__pyx_n_s_bess
#define __pyx_n_s_bessel_peaks __pyx_mstate_global->__pyx_n_s_bessel_peaks
#define __pyx_n_s_blackman __pyx_mstate_global->__pyx_n_s_blackman
#define __pyx_n_s_blackman4_env __pyx_mstate_global->__pyx_n_s_blackman4_env
#define __pyx_n_s_blackman_coeffs __pyx_mstate_global->__pyx_n_s_blackman_coeffs
#define __pyx_n_s_blsaw __pyx_mstate_global->__pyx_n_s_blsaw
#define __pyx_n_s_brown_noise __pyx_mstate_global->__pyx_n_s_brown_noise
#define __pyx_n_s_call_interp __pyx_mstate_global->__pyx_n_s_call_interp
#define __pyx_n_s_ceil __pyx_mstate_global->__pyx_n_s_ceil
#define __pyx_n_s_cfunc_to_py __pyx_mstate_global->__pyx_n_s_cfunc_to_py
#define __pyx_n_s_channels __pyx_mstate_global->__pyx_n_s_channels
#define __pyx_n_s_clamp __pyx_mstate_global->__pyx_n_s_clamp
#define __pyx_n_s_clamp_rxycos_r __pyx_mstate_global->__pyx_n_s_clamp_rxycos_r
#define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem
#define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
#define __pyx_n_s_clm __pyx_mstate_global->__pyx_n_s_clm
#define __pyx_n_s_copyto __pyx_mstate_global->__pyx_n_s_copyto
#define __pyx_n_s_cos __pyx_mstate_global->__pyx_n_s_cos
#define __pyx_n_s_cosh __pyx_mstate_global->__pyx_n_s_cosh
#define __pyx_kp_s_cython_double __pyx_mstate_global->__pyx_kp_s_cython_double
#define __pyx_n_s_data __pyx_mstate_global->__pyx_n_s_data
#define __pyx_n_s_dblsum __pyx_mstate_global->__pyx_n_s_dblsum
#define __pyx_n_s_default __pyx_mstate_global->__pyx_n_s_default
#define __pyx_n_s_den __pyx_mstate_global->__pyx_n_s_den
#define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
#define __pyx_n_s_dict_2 __pyx_mstate_global->__pyx_n_s_dict_2
#define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable
#define __pyx_n_s_double __pyx_mstate_global->__pyx_n_s_double
#define __pyx_n_s_dtype __pyx_mstate_global->__pyx_n_s_dtype
#define __pyx_n_s_duty_factor __pyx_mstate_global->__pyx_n_s_duty_factor
#define __pyx_n_s_e __pyx_mstate_global->__pyx_n_s_e
#define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable
#define __pyx_kp_u_enum_class_Polynomial_not_import __pyx_mstate_global->__pyx_kp_u_enum_class_Polynomial_not_import
#define __pyx_n_s_eoddcos __pyx_mstate_global->__pyx_n_s_eoddcos
#define __pyx_n_s_ercos __pyx_mstate_global->__pyx_n_s_ercos
#define __pyx_n_s_erssb __pyx_mstate_global->__pyx_n_s_erssb
#define __pyx_n_s_exp __pyx_mstate_global->__pyx_n_s_exp
#define __pyx_n_s_exponentially_weighted_moving_av __pyx_mstate_global->__pyx_n_s_exponentially_weighted_moving_av
#define __pyx_n_s_expts __pyx_mstate_global->__pyx_n_s_expts
#define __pyx_n_s_fabs __pyx_mstate_global->__pyx_n_s_fabs
#define __pyx_n_s_fill __pyx_mstate_global->__pyx_n_s_fill
#define __pyx_n_s_find_mid_max __pyx_mstate_global->__pyx_n_s_find_mid_max
#define __pyx_n_s_find_nodds_mid_max __pyx_mstate_global->__pyx_n_s_find_nodds_mid_max
#define __pyx_n_s_find_noddsin_max __pyx_mstate_global->__pyx_n_s_find_noddsin_max
#define __pyx_n_s_find_noddsin_max_locals_find_mid __pyx_mstate_global->__pyx_n_s_find_noddsin_max_locals_find_mid
#define __pyx_n_s_find_nsin5_max __pyx_mstate_global->__pyx_n_s_find_nsin5_max
#define __pyx_n_s_find_nsin5_max_locals_find_mid_m __pyx_mstate_global->__pyx_n_s_find_nsin5_max_locals_find_mid_m
#define __pyx_n_s_find_nsin5_max_locals_ns __pyx_mstate_global->__pyx_n_s_find_nsin5_max_locals_ns
#define __pyx_n_s_find_nxysin_max __pyx_mstate_global->__pyx_n_s_find_nxysin_max
#define __pyx_n_s_find_nxysin_max_locals_find_mid __pyx_mstate_global->__pyx_n_s_find_nxysin_max_locals_find_mid
#define __pyx_n_s_find_nxysin_max_locals_find_nodd __pyx_mstate_global->__pyx_n_s_find_nxysin_max_locals_find_nodd
#define __pyx_n_s_find_nxysin_max_locals_ns __pyx_mstate_global->__pyx_n_s_find_nxysin_max_locals_ns
#define __pyx_n_s_floor __pyx_mstate_global->__pyx_n_s_floor
#define __pyx_n_s_fm __pyx_mstate_global->__pyx_n_s_fm
#define __pyx_n_s_fmssb __pyx_mstate_global->__pyx_n_s_fmssb
#define __pyx_n_s_frequency __pyx_mstate_global->__pyx_n_s_frequency
#define __pyx_n_s_fun __pyx_mstate_global->__pyx_n_s_fun
#define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc
#define __pyx_n_s_gen __pyx_mstate_global->__pyx_n_s_gen
#define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate
#define __pyx_n_s_green_noise __pyx_mstate_global->__pyx_n_s_green_noise
#define __pyx_n_s_green_noise_interp __pyx_mstate_global->__pyx_n_s_green_noise_interp
#define __pyx_n_s_hi __pyx_mstate_global->__pyx_n_s_hi
#define __pyx_n_s_high __pyx_mstate_global->__pyx_n_s_high
#define __pyx_n_s_hop __pyx_mstate_global->__pyx_n_s_hop
#define __pyx_n_s_im __pyx_mstate_global->__pyx_n_s_im
#define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import
#define __pyx_n_s_index __pyx_mstate_global->__pyx_n_s_index
#define __pyx_n_s_init __pyx_mstate_global->__pyx_n_s_init
#define __pyx_n_s_initial_phase __pyx_mstate_global->__pyx_n_s_initial_phase
#define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing
#define __pyx_n_s_insig __pyx_mstate_global->__pyx_n_s_insig
#define __pyx_n_s_interp __pyx_mstate_global->__pyx_n_s_interp
#define __pyx_n_s_is_abcos __pyx_mstate_global->__pyx_n_s_is_abcos
#define __pyx_n_s_is_absin __pyx_mstate_global->__pyx_n_s_is_absin
#define __pyx_n_s_is_adjustable_oscil __pyx_mstate_global->__pyx_n_s_is_adjustable_oscil
#define __pyx_n_s_is_adjustable_sawtooth_wave __pyx_mstate_global->__pyx_n_s_is_adjustable_sawtooth_wave
#define __pyx_n_s_is_adjustable_square_wave __pyx_mstate_global->__pyx_n_s_is_adjustable_square_wave
#define __pyx_n_s_is_adjustable_triangle_wave __pyx_mstate_global->__pyx_n_s_is_adjustable_triangle_wave
#define __pyx_n_s_is_asyfm __pyx_mstate_global->__pyx_n_s_is_asyfm
#define __pyx_n_s_is_bess __pyx_mstate_global->__pyx_n_s_is_bess
#define __pyx_n_s_is_blackman __pyx_mstate_global->__pyx_n_s_is_blackman
#define __pyx_n_s_is_blsaw __pyx_mstate_global->__pyx_n_s_is_blsaw
#define __pyx_n_s_is_brown_noise __pyx_mstate_global->__pyx_n_s_is_brown_noise
#define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
#define __pyx_n_s_is_dblsum __pyx_mstate_global->__pyx_n_s_is_dblsum
#define __pyx_n_s_is_eoddcos __pyx_mstate_global->__pyx_n_s_is_eoddcos
#define __pyx_n_s_is_ercos __pyx_mstate_global->__pyx_n_s_is_ercos
#define __pyx_n_s_is_erssb __pyx_mstate_global->__pyx_n_s_is_erssb
#define __pyx_n_s_is_exponentially_weighted_moving __pyx_mstate_global->__pyx_n_s_is_exponentially_weighted_moving
#define __pyx_n_s_is_fmssb __pyx_mstate_global->__pyx_n_s_is_fmssb
#define __pyx_n_s_is_green_noise __pyx_mstate_global->__pyx_n_s_is_green_noise
#define __pyx_n_s_is_green_noise_interp __pyx_mstate_global->__pyx_n_s_is_green_noise_interp
#define __pyx_n_s_is_izcos __pyx_mstate_global->__pyx_n_s_is_izcos
#define __pyx_n_s_is_j0evencos __pyx_mstate_global->__pyx_n_s_is_j0evencos
#define __pyx_n_s_is_j0j1cos __pyx_mstate_global->__pyx_n_s_is_j0j1cos
#define __pyx_n_s_is_j2cos __pyx_mstate_global->__pyx_n_s_is_j2cos
#define __pyx_n_s_is_jcos __pyx_mstate_global->__pyx_n_s_is_jcos
#define __pyx_n_s_is_jjcos __pyx_mstate_global->__pyx_n_s_is_jjcos
#define __pyx_n_s_is_jncos __pyx_mstate_global->__pyx_n_s_is_jncos
#define __pyx_n_s_is_jpcos __pyx_mstate_global->__pyx_n_s_is_jpcos
#define __pyx_n_s_is_jycos __pyx_mstate_global->__pyx_n_s_is_jycos
#define __pyx_n_s_is_k2cos __pyx_mstate_global->__pyx_n_s_is_k2cos
#define __pyx_n_s_is_k2sin __pyx_mstate_global->__pyx_n_s_is_k2sin
#define __pyx_n_s_is_k2ssb __pyx_mstate_global->__pyx_n_s_is_k2ssb
#define __pyx_n_s_is_k3sin __pyx_mstate_global->__pyx_n_s_is_k3sin
#define __pyx_n_s_is_krksin __pyx_mstate_global->__pyx_n_s_is_krksin
#define __pyx_n_s_is_moving_fft __pyx_mstate_global->__pyx_n_s_is_moving_fft
#define __pyx_n_s_is_moving_length __pyx_mstate_global->__pyx_n_s_is_moving_length
#define __pyx_n_s_is_moving_rms __pyx_mstate_global->__pyx_n_s_is_moving_rms
#define __pyx_n_s_is_moving_sum __pyx_mstate_global->__pyx_n_s_is_moving_sum
#define __pyx_n_s_is_moving_variance __pyx_mstate_global->__pyx_n_s_is_moving_variance
#define __pyx_n_s_is_n1cos __pyx_mstate_global->__pyx_n_s_is_n1cos
#define __pyx_n_s_is_nchoosekcos __pyx_mstate_global->__pyx_n_s_is_nchoosekcos
#define __pyx_n_s_is_ncos2 __pyx_mstate_global->__pyx_n_s_is_ncos2
#define __pyx_n_s_is_ncos4 __pyx_mstate_global->__pyx_n_s_is_ncos4
#define __pyx_n_s_is_ncos5 __pyx_mstate_global->__pyx_n_s_is_ncos5
#define __pyx_n_s_is_nkssb __pyx_mstate_global->__pyx_n_s_is_nkssb
#define __pyx_n_s_is_noddcos __pyx_mstate_global->__pyx_n_s_is_noddcos
#define __pyx_n_s_is_noddsin __pyx_mstate_global->__pyx_n_s_is_noddsin
#define __pyx_n_s_is_noddssb __pyx_mstate_global->__pyx_n_s_is_noddssb
#define __pyx_n_s_is_npcos __pyx_mstate_global->__pyx_n_s_is_npcos
#define __pyx_n_s_is_npos1cos __pyx_mstate_global->__pyx_n_s_is_npos1cos
#define __pyx_n_s_is_npos3cos __pyx_mstate_global->__pyx_n_s_is_npos3cos
#define __pyx_n_s_is_nrcos __pyx_mstate_global->__pyx_n_s_is_nrcos
#define __pyx_n_s_is_nrsin __pyx_mstate_global->__pyx_n_s_is_nrsin
#define __pyx_n_s_is_nrssb __pyx_mstate_global->__pyx_n_s_is_nrssb
#define __pyx_n_s_is_nsin5 __pyx_mstate_global->__pyx_n_s_is_nsin5
#define __pyx_n_s_is_nsincos __pyx_mstate_global->__pyx_n_s_is_nsincos
#define __pyx_n_s_is_nssb __pyx_mstate_global->__pyx_n_s_is_nssb
#define __pyx_n_s_is_nxy1cos __pyx_mstate_global->__pyx_n_s_is_nxy1cos
#define __pyx_n_s_is_nxy1sin __pyx_mstate_global->__pyx_n_s_is_nxy1sin
#define __pyx_n_s_is_nxycos __pyx_mstate_global->__pyx_n_s_is_nxycos
#define __pyx_n_s_is_nxysin __pyx_mstate_global->__pyx_n_s_is_nxysin
#define __pyx_n_s_is_pink_noise __pyx_mstate_global->__pyx_n_s_is_pink_noise
#define __pyx_n_s_is_polyoid __pyx_mstate_global->__pyx_n_s_is_polyoid
#define __pyx_n_s_is_r2cos __pyx_mstate_global->__pyx_n_s_is_r2cos
#define __pyx_n_s_is_r2k2cos __pyx_mstate_global->__pyx_n_s_is_r2k2cos
#define __pyx_n_s_is_r2kfcos __pyx_mstate_global->__pyx_n_s_is_r2kfcos
#define __pyx_n_s_is_r2ssb __pyx_mstate_global->__pyx_n_s_is_r2ssb
#define __pyx_n_s_is_rcos __pyx_mstate_global->__pyx_n_s_is_rcos
#define __pyx_n_s_is_rkcos __pyx_mstate_global->__pyx_n_s_is_rkcos
#define __pyx_n_s_is_rkfcos __pyx_mstate_global->__pyx_n_s_is_rkfcos
#define __pyx_n_s_is_rkfssb __pyx_mstate_global->__pyx_n_s_is_rkfssb
#define __pyx_n_s_is_rkoddssb __pyx_mstate_global->__pyx_n_s_is_rkoddssb
#define __pyx_n_s_is_rksin __pyx_mstate_global->__pyx_n_s_is_rksin
#define __pyx_n_s_is_rkssb __pyx_mstate_global->__pyx_n_s_is_rkssb
#define __pyx_n_s_is_round_interp __pyx_mstate_global->__pyx_n_s_is_round_interp
#define __pyx_n_s_is_rssb __pyx_mstate_global->__pyx_n_s_is_rssb
#define __pyx_n_s_is_rxycos __pyx_mstate_global->__pyx_n_s_is_rxycos
#define __pyx_n_s_is_rxysin __pyx_mstate_global->__pyx_n_s_is_rxysin
#define __pyx_n_s_is_safe_rxycos __pyx_mstate_global->__pyx_n_s_is_safe_rxycos
#define __pyx_n_s_is_sinc_train __pyx_mstate_global->__pyx_n_s_is_sinc_train
#define __pyx_n_s_is_tanhsin __pyx_mstate_global->__pyx_n_s_is_tanhsin
#define __pyx_n_s_is_weighted_moving_average __pyx_mstate_global->__pyx_n_s_is_weighted_moving_average
#define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled
#define __pyx_n_s_izcos __pyx_mstate_global->__pyx_n_s_izcos
#define __pyx_n_s_j0evencos __pyx_mstate_global->__pyx_n_s_j0evencos
#define __pyx_n_s_j0j1cos __pyx_mstate_global->__pyx_n_s_j0j1cos
#define __pyx_n_s_j2cos __pyx_mstate_global->__pyx_n_s_j2cos
#define __pyx_n_s_jcos __pyx_mstate_global->__pyx_n_s_jcos
#define __pyx_n_s_jjcos __pyx_mstate_global->__pyx_n_s_jjcos
#define __pyx_n_s_jncos __pyx_mstate_global->__pyx_n_s_jncos
#define __pyx_n_s_jpcos __pyx_mstate_global->__pyx_n_s_jpcos
#define __pyx_n_s_jycos __pyx_mstate_global->__pyx_n_s_jycos
#define __pyx_n_s_k __pyx_mstate_global->__pyx_n_s_k
#define __pyx_n_s_k2cos __pyx_mstate_global->__pyx_n_s_k2cos
#define __pyx_n_s_k2sin __pyx_mstate_global->__pyx_n_s_k2sin
#define __pyx_n_s_k2ssb __pyx_mstate_global->__pyx_n_s_k2ssb
#define __pyx_n_s_k3sin __pyx_mstate_global->__pyx_n_s_k3sin
#define __pyx_n_s_krksin __pyx_mstate_global->__pyx_n_s_krksin
#define __pyx_n_s_last_moving_fft_window __pyx_mstate_global->__pyx_n_s_last_moving_fft_window
#define __pyx_n_s_length __pyx_mstate_global->__pyx_n_s_length
#define __pyx_n_s_lo __pyx_mstate_global->__pyx_n_s_lo
#define __pyx_n_s_log __pyx_mstate_global->__pyx_n_s_log
#define __pyx_n_s_low __pyx_mstate_global->__pyx_n_s_low
#define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
#define __pyx_n_s_make_abcos __pyx_mstate_global->__pyx_n_s_make_abcos
#define __pyx_n_s_make_absin __pyx_mstate_global->__pyx_n_s_make_absin
#define __pyx_n_s_make_adjustable_oscil __pyx_mstate_global->__pyx_n_s_make_adjustable_oscil
#define __pyx_n_s_make_adjustable_sawtooth_wave __pyx_mstate_global->__pyx_n_s_make_adjustable_sawtooth_wave
#define __pyx_n_s_make_adjustable_square_wave __pyx_mstate_global->__pyx_n_s_make_adjustable_square_wave
#define __pyx_n_s_make_adjustable_triangle_wave __pyx_mstate_global->__pyx_n_s_make_adjustable_triangle_wave
#define __pyx_n_s_make_asyfm __pyx_mstate_global->__pyx_n_s_make_asyfm
#define __pyx_n_s_make_bess __pyx_mstate_global->__pyx_n_s_make_bess
#define __pyx_n_s_make_blackman __pyx_mstate_global->__pyx_n_s_make_blackman
#define __pyx_n_s_make_blsaw __pyx_mstate_global->__pyx_n_s_make_blsaw
#define __pyx_n_s_make_brown_noise __pyx_mstate_global->__pyx_n_s_make_brown_noise
#define __pyx_n_s_make_dblsum __pyx_mstate_global->__pyx_n_s_make_dblsum
#define __pyx_n_s_make_env __pyx_mstate_global->__pyx_n_s_make_env
#define __pyx_n_s_make_eoddcos __pyx_mstate_global->__pyx_n_s_make_eoddcos
#define __pyx_n_s_make_ercos __pyx_mstate_global->__pyx_n_s_make_ercos
#define __pyx_n_s_make_erssb __pyx_mstate_global->__pyx_n_s_make_erssb
#define __pyx_n_s_make_exponentially_weighted_movi __pyx_mstate_global->__pyx_n_s_make_exponentially_weighted_movi
#define __pyx_n_s_make_fmssb __pyx_mstate_global->__pyx_n_s_make_fmssb
#define __pyx_n_s_make_green_noise __pyx_mstate_global->__pyx_n_s_make_green_noise
#define __pyx_n_s_make_green_noise_interp __pyx_mstate_global->__pyx_n_s_make_green_noise_interp
#define __pyx_n_s_make_izcos __pyx_mstate_global->__pyx_n_s_make_izcos
#define __pyx_n_s_make_j0evencos __pyx_mstate_global->__pyx_n_s_make_j0evencos
#define __pyx_n_s_make_j0j1cos __pyx_mstate_global->__pyx_n_s_make_j0j1cos
#define __pyx_n_s_make_j2cos __pyx_mstate_global->__pyx_n_s_make_j2cos
#define __pyx_n_s_make_jcos __pyx_mstate_global->__pyx_n_s_make_jcos
#define __pyx_n_s_make_jjcos __pyx_mstate_global->__pyx_n_s_make_jjcos
#define __pyx_n_s_make_jncos __pyx_mstate_global->__pyx_n_s_make_jncos
#define __pyx_n_s_make_jpcos __pyx_mstate_global->__pyx_n_s_make_jpcos
#define __pyx_n_s_make_jycos __pyx_mstate_global->__pyx_n_s_make_jycos
#define __pyx_n_s_make_k2cos __pyx_mstate_global->__pyx_n_s_make_k2cos
#define __pyx_n_s_make_k2sin __pyx_mstate_global->__pyx_n_s_make_k2sin
#define __pyx_n_s_make_k2ssb __pyx_mstate_global->__pyx_n_s_make_k2ssb
#define __pyx_n_s_make_k3sin __pyx_mstate_global->__pyx_n_s_make_k3sin
#define __pyx_n_s_make_krksin __pyx_mstate_global->__pyx_n_s_make_krksin
#define __pyx_n_s_make_moving_average __pyx_mstate_global->__pyx_n_s_make_moving_average
#define __pyx_n_s_make_moving_fft __pyx_mstate_global->__pyx_n_s_make_moving_fft
#define __pyx_n_s_make_moving_length __pyx_mstate_global->__pyx_n_s_make_moving_length
#define __pyx_n_s_make_moving_rms __pyx_mstate_global->__pyx_n_s_make_moving_rms
#define __pyx_n_s_make_moving_sum __pyx_mstate_global->__pyx_n_s_make_moving_sum
#define __pyx_n_s_make_moving_variance __pyx_mstate_global->__pyx_n_s_make_moving_variance
#define __pyx_n_s_make_n1cos __pyx_mstate_global->__pyx_n_s_make_n1cos
#define __pyx_n_s_make_nchoosekcos __pyx_mstate_global->__pyx_n_s_make_nchoosekcos
#define __pyx_n_s_make_ncos2 __pyx_mstate_global->__pyx_n_s_make_ncos2
#define __pyx_n_s_make_ncos4 __pyx_mstate_global->__pyx_n_s_make_ncos4
#define __pyx_n_s_make_ncos5 __pyx_mstate_global->__pyx_n_s_make_ncos5
#define __pyx_n_s_make_nkssb __pyx_mstate_global->__pyx_n_s_make_nkssb
#define __pyx_n_s_make_noddcos __pyx_mstate_global->__pyx_n_s_make_noddcos
#define __pyx_n_s_make_noddsin __pyx_mstate_global->__pyx_n_s_make_noddsin
#define __pyx_n_s_make_noddssb __pyx_mstate_global->__pyx_n_s_make_noddssb
#define __pyx_n_s_make_npcos __pyx_mstate_global->__pyx_n_s_make_npcos
#define __pyx_n_s_make_npos1cos __pyx_mstate_global->__pyx_n_s_make_npos1cos
#define __pyx_n_s_make_npos3cos __pyx_mstate_global->__pyx_n_s_make_npos3cos
#define __pyx_n_s_make_nrcos __pyx_mstate_global->__pyx_n_s_make_nrcos
#define __pyx_n_s_make_nrsin __pyx_mstate_global->__pyx_n_s_make_nrsin
#define __pyx_n_s_make_nrssb __pyx_mstate_global->__pyx_n_s_make_nrssb
#define __pyx_n_s_make_nrxysin __pyx_mstate_global->__pyx_n_s_make_nrxysin
#define __pyx_n_s_make_nsin5 __pyx_mstate_global->__pyx_n_s_make_nsin5
#define __pyx_n_s_make_nsincos __pyx_mstate_global->__pyx_n_s_make_nsincos
#define __pyx_n_s_make_nssb __pyx_mstate_global->__pyx_n_s_make_nssb
#define __pyx_n_s_make_nxy1cos __pyx_mstate_global->__pyx_n_s_make_nxy1cos
#define __pyx_n_s_make_nxy1sin __pyx_mstate_global->__pyx_n_s_make_nxy1sin
#define __pyx_n_s_make_nxycos __pyx_mstate_global->__pyx_n_s_make_nxycos
#define __pyx_n_s_make_nxysin __pyx_mstate_global->__pyx_n_s_make_nxysin
#define __pyx_n_s_make_one_pole __pyx_mstate_global->__pyx_n_s_make_one_pole
#define __pyx_n_s_make_oscil __pyx_mstate_global->__pyx_n_s_make_oscil
#define __pyx_n_s_make_pink_noise __pyx_mstate_global->__pyx_n_s_make_pink_noise
#define __pyx_n_s_make_polyoid __pyx_mstate_global->__pyx_n_s_make_polyoid
#define __pyx_n_s_make_polywave __pyx_mstate_global->__pyx_n_s_make_polywave
#define __pyx_n_s_make_pulse_train __pyx_mstate_global->__pyx_n_s_make_pulse_train
#define __pyx_n_s_make_r2cos __pyx_mstate_global->__pyx_n_s_make_r2cos
#define __pyx_n_s_make_r2k2cos __pyx_mstate_global->__pyx_n_s_make_r2k2cos
#define __pyx_n_s_make_r2kfcos __pyx_mstate_global->__pyx_n_s_make_r2kfcos
#define __pyx_n_s_make_r2ssb __pyx_mstate_global->__pyx_n_s_make_r2ssb
#define __pyx_n_s_make_rand __pyx_mstate_global->__pyx_n_s_make_rand
#define __pyx_n_s_make_rand_interp __pyx_mstate_global->__pyx_n_s_make_rand_interp
#define __pyx_n_s_make_rcos __pyx_mstate_global->__pyx_n_s_make_rcos
#define __pyx_n_s_make_rkcos __pyx_mstate_global->__pyx_n_s_make_rkcos
#define __pyx_n_s_make_rkfcos __pyx_mstate_global->__pyx_n_s_make_rkfcos
#define __pyx_n_s_make_rkfssb __pyx_mstate_global->__pyx_n_s_make_rkfssb
#define __pyx_n_s_make_rkoddssb __pyx_mstate_global->__pyx_n_s_make_rkoddssb
#define __pyx_n_s_make_rksin __pyx_mstate_global->__pyx_n_s_make_rksin
#define __pyx_n_s_make_rkssb __pyx_mstate_global->__pyx_n_s_make_rkssb
#define __pyx_n_s_make_round_interp __pyx_mstate_global->__pyx_n_s_make_round_interp
#define __pyx_n_s_make_rssb __pyx_mstate_global->__pyx_n_s_make_rssb
#define __pyx_n_s_make_rxycos __pyx_mstate_global->__pyx_n_s_make_rxycos
#define __pyx_n_s_make_rxysin __pyx_mstate_global->__pyx_n_s_make_rxysin
#define __pyx_n_s_make_safe_rxycos __pyx_mstate_global->__pyx_n_s_make_safe_rxycos
#define __pyx_n_s_make_sinc_train __pyx_mstate_global->__pyx_n_s_make_sinc_train
#define __pyx_n_s_make_table_lookup __pyx_mstate_global->__pyx_n_s_make_table_lookup
#define __pyx_n_s_make_table_lookup_with_env __pyx_mstate_global->__pyx_n_s_make_table_lookup_with_env
#define __pyx_n_s_make_tanhsin __pyx_mstate_global->__pyx_n_s_make_tanhsin
#define __pyx_n_s_make_triangle_wave __pyx_mstate_global->__pyx_n_s_make_triangle_wave
#define __pyx_n_s_make_wave_train __pyx_mstate_global->__pyx_n_s_make_wave_train
#define __pyx_n_s_make_wave_train_with_env __pyx_mstate_global->__pyx_n_s_make_wave_train_with_env
#define __pyx_n_s_make_weighted_moving_average __pyx_mstate_global->__pyx_n_s_make_weighted_moving_average
#define __pyx_n_s_math __pyx_mstate_global->__pyx_n_s_math
#define __pyx_n_s_mid __pyx_mstate_global->__pyx_n_s_mid
#define __pyx_n_s_moving_fft __pyx_mstate_global->__pyx_n_s_moving_fft
#define __pyx_n_s_moving_length __pyx_mstate_global->__pyx_n_s_moving_length
#define __pyx_n_s_moving_rms __pyx_mstate_global->__pyx_n_s_moving_rms
#define __pyx_n_s_moving_sum __pyx_mstate_global->__pyx_n_s_moving_sum
#define __pyx_n_s_moving_variance __pyx_mstate_global->__pyx_n_s_moving_variance
#define __pyx_n_s_multi_expt_env __pyx_mstate_global->__pyx_n_s_multi_expt_env
#define __pyx_n_s_multi_expt_env_locals_fun __pyx_mstate_global->__pyx_n_s_multi_expt_env_locals_fun
#define __pyx_n_s_mus_channel __pyx_mstate_global->__pyx_n_s_mus_channel
#define __pyx_n_s_mus_frequency __pyx_mstate_global->__pyx_n_s_mus_frequency
#define __pyx_n_s_mus_increment __pyx_mstate_global->__pyx_n_s_mus_increment
#define __pyx_n_s_mus_phase __pyx_mstate_global->__pyx_n_s_mus_phase
#define __pyx_n_s_mus_reset __pyx_mstate_global->__pyx_n_s_mus_reset
#define __pyx_n_s_mus_run __pyx_mstate_global->__pyx_n_s_mus_run
#define __pyx_n_s_mus_xcoeffs __pyx_mstate_global->__pyx_n_s_mus_xcoeffs
#define __pyx_n_s_mus_ycoeffs __pyx_mstate_global->__pyx_n_s_mus_ycoeffs
#define __pyx_kp_u_must_be_r __pyx_mstate_global->__pyx_kp_u_must_be_r
#define __pyx_n_s_n __pyx_mstate_global->__pyx_n_s_n
#define __pyx_n_s_n1cos __pyx_mstate_global->__pyx_n_s_n1cos
#define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
#define __pyx_n_s_nchoosekcos __pyx_mstate_global->__pyx_n_s_nchoosekcos
#define __pyx_n_s_ncos2 __pyx_mstate_global->__pyx_n_s_ncos2
#define __pyx_n_s_ncos4 __pyx_mstate_global->__pyx_n_s_ncos4
#define __pyx_n_s_ncos5 __pyx_mstate_global->__pyx_n_s_ncos5
#define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new
#define __pyx_n_s_next __pyx_mstate_global->__pyx_n_s_next
#define __pyx_n_s_next_i __pyx_mstate_global->__pyx_n_s_next_i
#define __pyx_n_s_next_j __pyx_mstate_global->__pyx_n_s_next_j
#define __pyx_n_s_nkssb __pyx_mstate_global->__pyx_n_s_nkssb
#define __pyx_n_s_nkssb_interp __pyx_mstate_global->__pyx_n_s_nkssb_interp
#define __pyx_n_s_noddcos __pyx_mstate_global->__pyx_n_s_noddcos
#define __pyx_n_s_nodds __pyx_mstate_global->__pyx_n_s_nodds
#define __pyx_n_s_noddsin __pyx_mstate_global->__pyx_n_s_noddsin
#define __pyx_n_s_noddssb __pyx_mstate_global->__pyx_n_s_noddssb
#define __pyx_n_s_norm __pyx_mstate_global->__pyx_n_s_norm
#define __pyx_n_s_np __pyx_mstate_global->__pyx_n_s_np
#define __pyx_n_s_npcos __pyx_mstate_global->__pyx_n_s_npcos
#define __pyx_n_s_npos1cos __pyx_mstate_global->__pyx_n_s_npos1cos
#define __pyx_n_s_npos3cos __pyx_mstate_global->__pyx_n_s_npos3cos
#define __pyx_n_s_nrcos __pyx_mstate_global->__pyx_n_s_nrcos
#define __pyx_n_s_nrsin __pyx_mstate_global->__pyx_n_s_nrsin
#define __pyx_n_s_nrssb __pyx_mstate_global->__pyx_n_s_nrssb
#define __pyx_n_s_nrssb_interp __pyx_mstate_global->__pyx_n_s_nrssb_interp
#define __pyx_n_s_ns __pyx_mstate_global->__pyx_n_s_ns
#define __pyx_n_s_nsin5 __pyx_mstate_global->__pyx_n_s_nsin5
#define __pyx_n_s_nsincos __pyx_mstate_global->__pyx_n_s_nsincos
#define __pyx_n_s_nssb __pyx_mstate_global->__pyx_n_s_nssb
#define __pyx_n_s_num __pyx_mstate_global->__pyx_n_s_num
#define __pyx_n_s_numpy __pyx_mstate_global->__pyx_n_s_numpy
#define __pyx_kp_u_numpy_core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_u_numpy_core_multiarray_failed_to
#define __pyx_kp_u_numpy_core_umath_failed_to_impor __pyx_mstate_global->__pyx_kp_u_numpy_core_umath_failed_to_impor
#define __pyx_n_s_nxy1cos __pyx_mstate_global->__pyx_n_s_nxy1cos
#define __pyx_n_s_nxy1sin __pyx_mstate_global->__pyx_n_s_nxy1sin
#define __pyx_n_s_nxycos __pyx_mstate_global->__pyx_n_s_nxycos
#define __pyx_n_s_nxysin __pyx_mstate_global->__pyx_n_s_nxysin
#define __pyx_n_s_osc __pyx_mstate_global->__pyx_n_s_osc
#define __pyx_n_s_outctr __pyx_mstate_global->__pyx_n_s_outctr
#define __pyx_n_s_partial_amps_and_phases __pyx_mstate_global->__pyx_n_s_partial_amps_and_phases
#define __pyx_n_s_pi __pyx_mstate_global->__pyx_n_s_pi
#define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle
#define __pyx_n_s_pink_noise __pyx_mstate_global->__pyx_n_s_pink_noise
#define __pyx_n_s_polyoid __pyx_mstate_global->__pyx_n_s_polyoid
#define __pyx_n_s_polyoid_tn __pyx_mstate_global->__pyx_n_s_polyoid_tn
#define __pyx_n_s_polyoid_un __pyx_mstate_global->__pyx_n_s_polyoid_un
#define __pyx_n_s_pow __pyx_mstate_global->__pyx_n_s_pow
#define __pyx_n_s_pulse_env __pyx_mstate_global->__pyx_n_s_pulse_env
#define __pyx_n_s_pysndlib __pyx_mstate_global->__pyx_n_s_pysndlib
#define __pyx_n_s_pysndlib_clm __pyx_mstate_global->__pyx_n_s_pysndlib_clm
#define __pyx_n_s_pysndlib_generators __pyx_mstate_global->__pyx_n_s_pysndlib_generators
#define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError
#define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum
#define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result
#define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state
#define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type
#define __pyx_n_s_pyx_unpickle_Abcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Abcos
#define __pyx_n_s_pyx_unpickle_Absin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Absin
#define __pyx_n_s_pyx_unpickle_AdjustableOscil __pyx_mstate_global->__pyx_n_s_pyx_unpickle_AdjustableOscil
#define __pyx_n_s_pyx_unpickle_AdjustableSawtoot __pyx_mstate_global->__pyx_n_s_pyx_unpickle_AdjustableSawtoot
#define __pyx_n_s_pyx_unpickle_AdjustableSquareW __pyx_mstate_global->__pyx_n_s_pyx_unpickle_AdjustableSquareW
#define __pyx_n_s_pyx_unpickle_AdjustableTriangl __pyx_mstate_global->__pyx_n_s_pyx_unpickle_AdjustableTriangl
#define __pyx_n_s_pyx_unpickle_Asyfm __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Asyfm
#define __pyx_n_s_pyx_unpickle_Bess __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Bess
#define __pyx_n_s_pyx_unpickle_Blackman __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Blackman
#define __pyx_n_s_pyx_unpickle_Blsaw __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Blsaw
#define __pyx_n_s_pyx_unpickle_BrownNoise __pyx_mstate_global->__pyx_n_s_pyx_unpickle_BrownNoise
#define __pyx_n_s_pyx_unpickle_CLMGenerator __pyx_mstate_global->__pyx_n_s_pyx_unpickle_CLMGenerator
#define __pyx_n_s_pyx_unpickle_Dblsum __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Dblsum
#define __pyx_n_s_pyx_unpickle_Eoddcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Eoddcos
#define __pyx_n_s_pyx_unpickle_Ercos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Ercos
#define __pyx_n_s_pyx_unpickle_Erssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Erssb
#define __pyx_n_s_pyx_unpickle_ExponentiallyWeig __pyx_mstate_global->__pyx_n_s_pyx_unpickle_ExponentiallyWeig
#define __pyx_n_s_pyx_unpickle_Fmssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Fmssb
#define __pyx_n_s_pyx_unpickle_GreenNoise __pyx_mstate_global->__pyx_n_s_pyx_unpickle_GreenNoise
#define __pyx_n_s_pyx_unpickle_GreenNoiseInterp __pyx_mstate_global->__pyx_n_s_pyx_unpickle_GreenNoiseInterp
#define __pyx_n_s_pyx_unpickle_Izcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Izcos
#define __pyx_n_s_pyx_unpickle_J0evencos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_J0evencos
#define __pyx_n_s_pyx_unpickle_J0j1cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_J0j1cos
#define __pyx_n_s_pyx_unpickle_J2cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_J2cos
#define __pyx_n_s_pyx_unpickle_Jcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Jcos
#define __pyx_n_s_pyx_unpickle_Jjcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Jjcos
#define __pyx_n_s_pyx_unpickle_Jncos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Jncos
#define __pyx_n_s_pyx_unpickle_Jpcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Jpcos
#define __pyx_n_s_pyx_unpickle_Jycos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Jycos
#define __pyx_n_s_pyx_unpickle_K2cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_K2cos
#define __pyx_n_s_pyx_unpickle_K2sin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_K2sin
#define __pyx_n_s_pyx_unpickle_K2ssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_K2ssb
#define __pyx_n_s_pyx_unpickle_K3sin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_K3sin
#define __pyx_n_s_pyx_unpickle_Krksin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Krksin
#define __pyx_n_s_pyx_unpickle_MovingFFT __pyx_mstate_global->__pyx_n_s_pyx_unpickle_MovingFFT
#define __pyx_n_s_pyx_unpickle_MovingLength __pyx_mstate_global->__pyx_n_s_pyx_unpickle_MovingLength
#define __pyx_n_s_pyx_unpickle_MovingRMS __pyx_mstate_global->__pyx_n_s_pyx_unpickle_MovingRMS
#define __pyx_n_s_pyx_unpickle_MovingSum __pyx_mstate_global->__pyx_n_s_pyx_unpickle_MovingSum
#define __pyx_n_s_pyx_unpickle_MovingVariance __pyx_mstate_global->__pyx_n_s_pyx_unpickle_MovingVariance
#define __pyx_n_s_pyx_unpickle_N1cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_N1cos
#define __pyx_n_s_pyx_unpickle_Nchoosekcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nchoosekcos
#define __pyx_n_s_pyx_unpickle_Ncos2 __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Ncos2
#define __pyx_n_s_pyx_unpickle_Ncos4 __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Ncos4
#define __pyx_n_s_pyx_unpickle_Ncos5 __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Ncos5
#define __pyx_n_s_pyx_unpickle_Nkssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nkssb
#define __pyx_n_s_pyx_unpickle_Noddcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Noddcos
#define __pyx_n_s_pyx_unpickle_Noddsin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Noddsin
#define __pyx_n_s_pyx_unpickle_Noddssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Noddssb
#define __pyx_n_s_pyx_unpickle_Npcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Npcos
#define __pyx_n_s_pyx_unpickle_Npos1cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Npos1cos
#define __pyx_n_s_pyx_unpickle_Npos3cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Npos3cos
#define __pyx_n_s_pyx_unpickle_Nrcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nrcos
#define __pyx_n_s_pyx_unpickle_Nrssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nrssb
#define __pyx_n_s_pyx_unpickle_Nsin5 __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nsin5
#define __pyx_n_s_pyx_unpickle_Nsincos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nsincos
#define __pyx_n_s_pyx_unpickle_Nssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nssb
#define __pyx_n_s_pyx_unpickle_Nxy1cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nxy1cos
#define __pyx_n_s_pyx_unpickle_Nxy1sin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nxy1sin
#define __pyx_n_s_pyx_unpickle_Nxycos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nxycos
#define __pyx_n_s_pyx_unpickle_Nxysin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Nxysin
#define __pyx_n_s_pyx_unpickle_PinkNoise __pyx_mstate_global->__pyx_n_s_pyx_unpickle_PinkNoise
#define __pyx_n_s_pyx_unpickle_R2cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_R2cos
#define __pyx_n_s_pyx_unpickle_R2k2cos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_R2k2cos
#define __pyx_n_s_pyx_unpickle_R2kfcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_R2kfcos
#define __pyx_n_s_pyx_unpickle_R2ssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_R2ssb
#define __pyx_n_s_pyx_unpickle_Rcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rcos
#define __pyx_n_s_pyx_unpickle_Rkcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rkcos
#define __pyx_n_s_pyx_unpickle_Rkfcos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rkfcos
#define __pyx_n_s_pyx_unpickle_Rkfssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rkfssb
#define __pyx_n_s_pyx_unpickle_Rkoddssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rkoddssb
#define __pyx_n_s_pyx_unpickle_Rksin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rksin
#define __pyx_n_s_pyx_unpickle_Rkssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rkssb
#define __pyx_n_s_pyx_unpickle_RoundInterp __pyx_mstate_global->__pyx_n_s_pyx_unpickle_RoundInterp
#define __pyx_n_s_pyx_unpickle_Rssb __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rssb
#define __pyx_n_s_pyx_unpickle_Rxycos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rxycos
#define __pyx_n_s_pyx_unpickle_Rxysin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Rxysin
#define __pyx_n_s_pyx_unpickle_SafeRxycos __pyx_mstate_global->__pyx_n_s_pyx_unpickle_SafeRxycos
#define __pyx_n_s_pyx_unpickle_SincTrain __pyx_mstate_global->__pyx_n_s_pyx_unpickle_SincTrain
#define __pyx_n_s_pyx_unpickle_Tanhsin __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Tanhsin
#define __pyx_n_s_pyx_unpickle_WeightedMovingAve __pyx_mstate_global->__pyx_n_s_pyx_unpickle_WeightedMovingAve
#define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable
#define __pyx_n_s_r __pyx_mstate_global->__pyx_n_s_r
#define __pyx_n_s_r2cos __pyx_mstate_global->__pyx_n_s_r2cos
#define __pyx_n_s_r2k2cos __pyx_mstate_global->__pyx_n_s_r2k2cos
#define __pyx_n_s_r2kfcos __pyx_mstate_global->__pyx_n_s_r2kfcos
#define __pyx_n_s_r2ssb __pyx_mstate_global->__pyx_n_s_r2ssb
#define __pyx_kp_u_r_2 __pyx_mstate_global->__pyx_kp_u_r_2
#define __pyx_n_s_random __pyx_mstate_global->__pyx_n_s_random
#define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range
#define __pyx_n_s_ratio __pyx_mstate_global->__pyx_n_s_ratio
#define __pyx_n_s_rcos __pyx_mstate_global->__pyx_n_s_rcos
#define __pyx_n_s_reader __pyx_mstate_global->__pyx_n_s_reader
#define __pyx_n_s_real __pyx_mstate_global->__pyx_n_s_real
#define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce
#define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
#define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
#define __pyx_n_s_rkcos __pyx_mstate_global->__pyx_n_s_rkcos
#define __pyx_n_s_rkfcos __pyx_mstate_global->__pyx_n_s_rkfcos
#define __pyx_n_s_rkfssb __pyx_mstate_global->__pyx_n_s_rkfssb
#define __pyx_n_s_rkoddssb __pyx_mstate_global->__pyx_n_s_rkoddssb
#define __pyx_n_s_rksin __pyx_mstate_global->__pyx_n_s_rksin
#define __pyx_n_s_rkssb __pyx_mstate_global->__pyx_n_s_rkssb
#define __pyx_n_s_rl __pyx_mstate_global->__pyx_n_s_rl
#define __pyx_n_s_rnd __pyx_mstate_global->__pyx_n_s_rnd
#define __pyx_n_s_roll __pyx_mstate_global->__pyx_n_s_roll
#define __pyx_n_s_round_interp __pyx_mstate_global->__pyx_n_s_round_interp
#define __pyx_n_s_rssb __pyx_mstate_global->__pyx_n_s_rssb
#define __pyx_n_s_rssb_interp __pyx_mstate_global->__pyx_n_s_rssb_interp
#define __pyx_n_s_rxycos __pyx_mstate_global->__pyx_n_s_rxycos
#define __pyx_n_s_rxysin __pyx_mstate_global->__pyx_n_s_rxysin
#define __pyx_n_s_safe_rxycos __pyx_mstate_global->__pyx_n_s_safe_rxycos
#define __pyx_n_s_self __pyx_mstate_global->__pyx_n_s_self
#define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate
#define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython
#define __pyx_n_s_sin __pyx_mstate_global->__pyx_n_s_sin
#define __pyx_n_s_sinc_train __pyx_mstate_global->__pyx_n_s_sinc_train
#define __pyx_n_s_sine_env __pyx_mstate_global->__pyx_n_s_sine_env
#define __pyx_n_s_sinh __pyx_mstate_global->__pyx_n_s_sinh
#define __pyx_n_s_size __pyx_mstate_global->__pyx_n_s_size
#define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec
#define __pyx_n_s_sqrt __pyx_mstate_global->__pyx_n_s_sqrt
#define __pyx_n_s_square_env __pyx_mstate_global->__pyx_n_s_square_env
#define __pyx_kp_s_src_pysndlib_generators_pyx __pyx_mstate_global->__pyx_kp_s_src_pysndlib_generators_pyx
#define __pyx_n_s_state __pyx_mstate_global->__pyx_n_s_state
#define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource
#define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super
#define __pyx_n_s_table_size __pyx_mstate_global->__pyx_n_s_table_size
#define __pyx_n_s_tan __pyx_mstate_global->__pyx_n_s_tan
#define __pyx_n_s_tanh __pyx_mstate_global->__pyx_n_s_tanh
#define __pyx_n_s_tanhsin __pyx_mstate_global->__pyx_n_s_tanhsin
#define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
#define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
#define __pyx_n_s_use_setstate __pyx_mstate_global->__pyx_n_s_use_setstate
#define __pyx_n_s_warn __pyx_mstate_global->__pyx_n_s_warn
#define __pyx_n_s_warnings __pyx_mstate_global->__pyx_n_s_warnings
#define __pyx_n_s_weighted_moving_average __pyx_mstate_global->__pyx_n_s_weighted_moving_average
#define __pyx_kp_u_will_cause_bes_y0_to_return_inf __pyx_mstate_global->__pyx_kp_u_will_cause_bes_y0_to_return_inf
#define __pyx_n_s_window __pyx_mstate_global->__pyx_n_s_window
#define __pyx_n_s_wrap __pyx_mstate_global->__pyx_n_s_wrap
#define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x
#define __pyx_n_s_xcoeffs __pyx_mstate_global->__pyx_n_s_xcoeffs
#define __pyx_n_s_y __pyx_mstate_global->__pyx_n_s_y
#define __pyx_n_s_ycoeffs __pyx_mstate_global->__pyx_n_s_ycoeffs
#define __pyx_n_s_yhi __pyx_mstate_global->__pyx_n_s_yhi
#define __pyx_n_s_ylo __pyx_mstate_global->__pyx_n_s_ylo
#define __pyx_n_s_zeros __pyx_mstate_global->__pyx_n_s_zeros
#define __pyx_float__0 __pyx_mstate_global->__pyx_float__0
#define __pyx_float__5 __pyx_mstate_global->__pyx_float__5
#define __pyx_float_0_ __pyx_mstate_global->__pyx_float_0_
#define __pyx_float_1_ __pyx_mstate_global->__pyx_float_1_
#define __pyx_float_3_ __pyx_mstate_global->__pyx_float_3_
#define __pyx_float__25 __pyx_mstate_global->__pyx_float__25
#define __pyx_float__54 __pyx_mstate_global->__pyx_float__54
#define __pyx_float_0_0 __pyx_mstate_global->__pyx_float_0_0
#define __pyx_float_0_5 __pyx_mstate_global->__pyx_float_0_5
#define __pyx_float_1_0 __pyx_mstate_global->__pyx_float_1_0
#define __pyx_float_2_0 __pyx_mstate_global->__pyx_float_2_0
#define __pyx_float_2_5 __pyx_mstate_global->__pyx_float_2_5
#define __pyx_float_3_0 __pyx_mstate_global->__pyx_float_3_0
#define __pyx_float_4_0 __pyx_mstate_global->__pyx_float_4_0
#define __pyx_float_5_0 __pyx_mstate_global->__pyx_float_5_0
#define __pyx_float__001 __pyx_mstate_global->__pyx_float__001
#define __pyx_float_0_54 __pyx_mstate_global->__pyx_float_0_54
#define __pyx_float_1eneg_9 __pyx_mstate_global->__pyx_float_1eneg_9
#define __pyx_float_0_248 __pyx_mstate_global->__pyx_float_0_248
#define __pyx_float_0_252 __pyx_mstate_global->__pyx_float_0_252
#define __pyx_float_0_257 __pyx_mstate_global->__pyx_float_0_257
#define __pyx_float_0_262 __pyx_mstate_global->__pyx_float_0_262
#define __pyx_float_0_267 __pyx_mstate_global->__pyx_float_0_267
#define __pyx_float_0_273 __pyx_mstate_global->__pyx_float_0_273
#define __pyx_float_0_279 __pyx_mstate_global->__pyx_float_0_279
#define __pyx_float_0_286 __pyx_mstate_global->__pyx_float_0_286
#define __pyx_float_0_294 __pyx_mstate_global->__pyx_float_0_294
#define __pyx_float_0_303 __pyx_mstate_global->__pyx_float_0_303
#define __pyx_float_0_313 __pyx_mstate_global->__pyx_float_0_313
#define __pyx_float_0_325 __pyx_mstate_global->__pyx_float_0_325
#define __pyx_float_0_338 __pyx_mstate_global->__pyx_float_0_338
#define __pyx_float_0_355 __pyx_mstate_global->__pyx_float_0_355
#define __pyx_float_0_375 __pyx_mstate_global->__pyx_float_0_375
#define __pyx_float_0_400 __pyx_mstate_global->__pyx_float_0_400
#define __pyx_float_0_435 __pyx_mstate_global->__pyx_float_0_435
#define __pyx_float_0_487 __pyx_mstate_global->__pyx_float_0_487
#define __pyx_float_0_582 __pyx_mstate_global->__pyx_float_0_582
#define __pyx_float_1_000 __pyx_mstate_global->__pyx_float_1_000
#define __pyx_float__00001 __pyx_mstate_global->__pyx_float__00001
#define __pyx_float__08333 __pyx_mstate_global->__pyx_float__08333
#define __pyx_float__99999 __pyx_mstate_global->__pyx_float__99999
#define __pyx_float_1_0eneg_6 __pyx_mstate_global->__pyx_float_1_0eneg_6
#define __pyx_float_1_0eneg_9 __pyx_mstate_global->__pyx_float_1_0eneg_9
#define __pyx_float__201416 __pyx_mstate_global->__pyx_float__201416
#define __pyx_float__293557 __pyx_mstate_global->__pyx_float__293557
#define __pyx_float__999999 __pyx_mstate_global->__pyx_float__999999
#define __pyx_float_0_14128 __pyx_mstate_global->__pyx_float_0_14128
#define __pyx_float_0_20762 __pyx_mstate_global->__pyx_float_0_20762
#define __pyx_float_0_20844 __pyx_mstate_global->__pyx_float_0_20844
#define __pyx_float_0_29145 __pyx_mstate_global->__pyx_float_0_29145
#define __pyx_float_0_35875 __pyx_mstate_global->__pyx_float_0_35875
#define __pyx_float_0_42323 __pyx_mstate_global->__pyx_float_0_42323
#define __pyx_float_0_48829 __pyx_mstate_global->__pyx_float_0_48829
#define __pyx_float__2151527 __pyx_mstate_global->__pyx_float__2151527
#define __pyx_float__2180041 __pyx_mstate_global->__pyx_float__2180041
#define __pyx_float__2257345 __pyx_mstate_global->__pyx_float__2257345
#define __pyx_float__2288396 __pyx_mstate_global->__pyx_float__2288396
#define __pyx_float__2358242 __pyx_mstate_global->__pyx_float__2358242
#define __pyx_float__2384331 __pyx_mstate_global->__pyx_float__2384331
#define __pyx_float__2401294 __pyx_mstate_global->__pyx_float__2401294
#define __pyx_float__2424243 __pyx_mstate_global->__pyx_float__2424243
#define __pyx_float__2533176 __pyx_mstate_global->__pyx_float__2533176
#define __pyx_float__2712203 __pyx_mstate_global->__pyx_float__2712203
#define __pyx_float__9999999 __pyx_mstate_global->__pyx_float__9999999
#define __pyx_float_0_005149 __pyx_mstate_global->__pyx_float_0_005149
#define __pyx_float_0_041194 __pyx_mstate_global->__pyx_float_0_041194
#define __pyx_float_0_078279 __pyx_mstate_global->__pyx_float_0_078279
#define __pyx_float_0_084037 __pyx_mstate_global->__pyx_float_0_084037
#define __pyx_float_0_287333 __pyx_mstate_global->__pyx_float_0_287333
#define __pyx_float_0_375696 __pyx_mstate_global->__pyx_float_0_375696
#define __pyx_float__00502619 __pyx_mstate_global->__pyx_float__00502619
#define __pyx_float__03325916 __pyx_mstate_global->__pyx_float__03325916
#define __pyx_float__04077422 __pyx_mstate_global->__pyx_float__04077422
#define __pyx_float__010761867 __pyx_mstate_global->__pyx_float__010761867
#define __pyx_float__017735924 __pyx_mstate_global->__pyx_float__017735924
#define __pyx_float__025373955 __pyx_mstate_global->__pyx_float__025373955
#define __pyx_float__0008751673 __pyx_mstate_global->__pyx_float__0008751673
#define __pyx_float__0016398069 __pyx_mstate_global->__pyx_float__0016398069
#define __pyx_float__00001368088 __pyx_mstate_global->__pyx_float__00001368088
#define __pyx_float__00010677413 __pyx_mstate_global->__pyx_float__00010677413
#define __pyx_float__00036856041 __pyx_mstate_global->__pyx_float__00036856041
#define __pyx_float__000001710716 __pyx_mstate_global->__pyx_float__000001710716
#define __pyx_float__000008884663 __pyx_mstate_global->__pyx_float__000008884663
#define __pyx_float__0000001161808 __pyx_mstate_global->__pyx_float__0000001161808
#define __pyx_float__00000000084824 __pyx_mstate_global->__pyx_float__00000000084824
#define __pyx_float_neg_1_ __pyx_mstate_global->__pyx_float_neg_1_
#define __pyx_float_neg_0_46 __pyx_mstate_global->__pyx_float_neg_0_46
#define __pyx_float_neg__99999 __pyx_mstate_global->__pyx_float_neg__99999
#define __pyx_float_neg__047926 __pyx_mstate_global->__pyx_float_neg__047926
#define __pyx_float_neg__451935 __pyx_mstate_global->__pyx_float_neg__451935
#define __pyx_float_neg__999999 __pyx_mstate_global->__pyx_float_neg__999999
#define __pyx_float_neg_0_01168 __pyx_mstate_global->__pyx_float_neg_0_01168
#define __pyx_float_neg_0_05190 __pyx_mstate_global->__pyx_float_neg_0_05190
#define __pyx_float_neg_0_44716 __pyx_mstate_global->__pyx_float_neg_0_44716
#define __pyx_float_neg_0_49755 __pyx_mstate_global->__pyx_float_neg_0_49755
#define __pyx_float_neg__0657853 __pyx_mstate_global->__pyx_float_neg__0657853
#define __pyx_float_neg__1070542 __pyx_mstate_global->__pyx_float_neg__1070542
#define __pyx_float_neg__1166907 __pyx_mstate_global->__pyx_float_neg__1166907
#define __pyx_float_neg__3731348 __pyx_mstate_global->__pyx_float_neg__3731348
#define __pyx_float_neg__3860122 __pyx_mstate_global->__pyx_float_neg__3860122
#define __pyx_float_neg__4005545 __pyx_mstate_global->__pyx_float_neg__4005545
#define __pyx_float_neg__4163269 __pyx_mstate_global->__pyx_float_neg__4163269
#define __pyx_float_neg__4334446 __pyx_mstate_global->__pyx_float_neg__4334446
#define __pyx_float_neg__00687337 __pyx_mstate_global->__pyx_float_neg__00687337
#define __pyx_float_neg__01000904 __pyx_mstate_global->__pyx_float_neg__01000904
#define __pyx_float_neg__08157508 __pyx_mstate_global->__pyx_float_neg__08157508
#define __pyx_float_neg__09527918 __pyx_mstate_global->__pyx_float_neg__09527918
#define __pyx_float_neg__000137555 __pyx_mstate_global->__pyx_float_neg__000137555
#define __pyx_float_neg__0000012807 __pyx_mstate_global->__pyx_float_neg__0000012807
#define __pyx_float_neg__0000600859 __pyx_mstate_global->__pyx_float_neg__0000600859
#define __pyx_float_neg__0001651660 __pyx_mstate_global->__pyx_float_neg__0001651660
#define __pyx_float_neg__0007700127 __pyx_mstate_global->__pyx_float_neg__0007700127
#define __pyx_float_neg__0020967027 __pyx_mstate_global->__pyx_float_neg__0020967027
#define __pyx_float_neg__0041524329 __pyx_mstate_global->__pyx_float_neg__0041524329
#define __pyx_float_neg__00001384355 __pyx_mstate_global->__pyx_float_neg__00001384355
#define __pyx_float_neg__000000193817 __pyx_mstate_global->__pyx_float_neg__000000193817
#define __pyx_float_neg__00000001027272 __pyx_mstate_global->__pyx_float_neg__00000001027272
#define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
#define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
#define __pyx_int_2 __pyx_mstate_global->__pyx_int_2
#define __pyx_int_3 __pyx_mstate_global->__pyx_int_3
#define __pyx_int_4 __pyx_mstate_global->__pyx_int_4
#define __pyx_int_5 __pyx_mstate_global->__pyx_int_5
#define __pyx_int_6 __pyx_mstate_global->__pyx_int_6
#define __pyx_int_7 __pyx_mstate_global->__pyx_int_7
#define __pyx_int_8 __pyx_mstate_global->__pyx_int_8
#define __pyx_int_9 __pyx_mstate_global->__pyx_int_9
#define __pyx_int_10 __pyx_mstate_global->__pyx_int_10
#define __pyx_int_100 __pyx_mstate_global->__pyx_int_100
#define __pyx_int_128 __pyx_mstate_global->__pyx_int_128
#define __pyx_int_512 __pyx_mstate_global->__pyx_int_512
#define __pyx_int_4328264 __pyx_mstate_global->__pyx_int_4328264
#define __pyx_int_6431051 __pyx_mstate_global->__pyx_int_6431051
#define __pyx_int_7189371 __pyx_mstate_global->__pyx_int_7189371
#define __pyx_int_8089851 __pyx_mstate_global->__pyx_int_8089851
#define __pyx_int_8455662 __pyx_mstate_global->__pyx_int_8455662
#define __pyx_int_9011761 __pyx_mstate_global->__pyx_int_9011761
#define __pyx_int_9695810 __pyx_mstate_global->__pyx_int_9695810
#define __pyx_int_10165065 __pyx_mstate_global->__pyx_int_10165065
#define __pyx_int_14011399 __pyx_mstate_global->__pyx_int_14011399
#define __pyx_int_14828874 __pyx_mstate_global->__pyx_int_14828874
#define __pyx_int_14975952 __pyx_mstate_global->__pyx_int_14975952
#define __pyx_int_16473016 __pyx_mstate_global->__pyx_int_16473016
#define __pyx_int_17204615 __pyx_mstate_global->__pyx_int_17204615
#define __pyx_int_19846739 __pyx_mstate_global->__pyx_int_19846739
#define __pyx_int_22572774 __pyx_mstate_global->__pyx_int_22572774
#define __pyx_int_24494209 __pyx_mstate_global->__pyx_int_24494209
#define __pyx_int_25414310 __pyx_mstate_global->__pyx_int_25414310
#define __pyx_int_27861694 __pyx_mstate_global->__pyx_int_27861694
#define __pyx_int_28216571 __pyx_mstate_global->__pyx_int_28216571
#define __pyx_int_29168483 __pyx_mstate_global->__pyx_int_29168483
#define __pyx_int_29803235 __pyx_mstate_global->__pyx_int_29803235
#define __pyx_int_33150030 __pyx_mstate_global->__pyx_int_33150030
#define __pyx_int_35482709 __pyx_mstate_global->__pyx_int_35482709
#define __pyx_int_35949077 __pyx_mstate_global->__pyx_int_35949077
#define __pyx_int_36267824 __pyx_mstate_global->__pyx_int_36267824
#define __pyx_int_38153256 __pyx_mstate_global->__pyx_int_38153256
#define __pyx_int_38339493 __pyx_mstate_global->__pyx_int_38339493
#define __pyx_int_39153840 __pyx_mstate_global->__pyx_int_39153840
#define __pyx_int_43452093 __pyx_mstate_global->__pyx_int_43452093
#define __pyx_int_44313570 __pyx_mstate_global->__pyx_int_44313570
#define __pyx_int_48941122 __pyx_mstate_global->__pyx_int_48941122
#define __pyx_int_49475411 __pyx_mstate_global->__pyx_int_49475411
#define __pyx_int_56324287 __pyx_mstate_global->__pyx_int_56324287
#define __pyx_int_56550309 __pyx_mstate_global->__pyx_int_56550309
#define __pyx_int_57753464 __pyx_mstate_global->__pyx_int_57753464
#define __pyx_int_58026155 __pyx_mstate_global->__pyx_int_58026155
#define __pyx_int_60215003 __pyx_mstate_global->__pyx_int_60215003
#define __pyx_int_61524905 __pyx_mstate_global->__pyx_int_61524905
#define __pyx_int_62874594 __pyx_mstate_global->__pyx_int_62874594
#define __pyx_int_64927267 __pyx_mstate_global->__pyx_int_64927267
#define __pyx_int_75984122 __pyx_mstate_global->__pyx_int_75984122
#define __pyx_int_81718022 __pyx_mstate_global->__pyx_int_81718022
#define __pyx_int_82299867 __pyx_mstate_global->__pyx_int_82299867
#define __pyx_int_83731376 __pyx_mstate_global->__pyx_int_83731376
#define __pyx_int_83943461 __pyx_mstate_global->__pyx_int_83943461
#define __pyx_int_89407914 __pyx_mstate_global->__pyx_int_89407914
#define __pyx_int_90560465 __pyx_mstate_global->__pyx_int_90560465
#define __pyx_int_90806753 __pyx_mstate_global->__pyx_int_90806753
#define __pyx_int_93173464 __pyx_mstate_global->__pyx_int_93173464
#define __pyx_int_93234418 __pyx_mstate_global->__pyx_int_93234418
#define __pyx_int_94252077 __pyx_mstate_global->__pyx_int_94252077
#define __pyx_int_95048614 __pyx_mstate_global->__pyx_int_95048614
#define __pyx_int_96942813 __pyx_mstate_global->__pyx_int_96942813
#define __pyx_int_97846830 __pyx_mstate_global->__pyx_int_97846830
#define __pyx_int_99923986 __pyx_mstate_global->__pyx_int_99923986
#define __pyx_int_100967284 __pyx_mstate_global->__pyx_int_100967284
#define __pyx_int_101808146 __pyx_mstate_global->__pyx_int_101808146
#define __pyx_int_103203137 __pyx_mstate_global->__pyx_int_103203137
#define __pyx_int_103886015 __pyx_mstate_global->__pyx_int_103886015
#define __pyx_int_105646596 __pyx_mstate_global->__pyx_int_105646596
#define __pyx_int_105786433 __pyx_mstate_global->__pyx_int_105786433
#define __pyx_int_108802371 __pyx_mstate_global->__pyx_int_108802371
#define __pyx_int_109999513 __pyx_mstate_global->__pyx_int_109999513
#define __pyx_int_114002020 __pyx_mstate_global->__pyx_int_114002020
#define __pyx_int_117047762 __pyx_mstate_global->__pyx_int_117047762
#define __pyx_int_118435233 __pyx_mstate_global->__pyx_int_118435233
#define __pyx_int_120077725 __pyx_mstate_global->__pyx_int_120077725
#define __pyx_int_121268523 __pyx_mstate_global->__pyx_int_121268523
#define __pyx_int_121669262 __pyx_mstate_global->__pyx_int_121669262
#define __pyx_int_123870349 __pyx_mstate_global->__pyx_int_123870349
#define __pyx_int_127044661 __pyx_mstate_global->__pyx_int_127044661
#define __pyx_int_127565017 __pyx_mstate_global->__pyx_int_127565017
#define __pyx_int_131487801 __pyx_mstate_global->__pyx_int_131487801
#define __pyx_int_134697328 __pyx_mstate_global->__pyx_int_134697328
#define __pyx_int_134779209 __pyx_mstate_global->__pyx_int_134779209
#define __pyx_int_135827999 __pyx_mstate_global->__pyx_int_135827999
#define __pyx_int_136014572 __pyx_mstate_global->__pyx_int_136014572
#define __pyx_int_138134742 __pyx_mstate_global->__pyx_int_138134742
#define __pyx_int_139350794 __pyx_mstate_global->__pyx_int_139350794
#define __pyx_int_140324773 __pyx_mstate_global->__pyx_int_140324773
#define __pyx_int_143031090 __pyx_mstate_global->__pyx_int_143031090
#define __pyx_int_144439432 __pyx_mstate_global->__pyx_int_144439432
#define __pyx_int_146847058 __pyx_mstate_global->__pyx_int_146847058
#define __pyx_int_147363750 __pyx_mstate_global->__pyx_int_147363750
#define __pyx_int_148272179 __pyx_mstate_global->__pyx_int_148272179
#define __pyx_int_149852974 __pyx_mstate_global->__pyx_int_149852974
#define __pyx_int_150399202 __pyx_mstate_global->__pyx_int_150399202
#define __pyx_int_150798460 __pyx_mstate_global->__pyx_int_150798460
#define __pyx_int_150816533 __pyx_mstate_global->__pyx_int_150816533
#define __pyx_int_150941660 __pyx_mstate_global->__pyx_int_150941660
#define __pyx_int_152846879 __pyx_mstate_global->__pyx_int_152846879
#define __pyx_int_153277992 __pyx_mstate_global->__pyx_int_153277992
#define __pyx_int_155011743 __pyx_mstate_global->__pyx_int_155011743
#define __pyx_int_158694560 __pyx_mstate_global->__pyx_int_158694560
#define __pyx_int_160277609 __pyx_mstate_global->__pyx_int_160277609
#define __pyx_int_160593119 __pyx_mstate_global->__pyx_int_160593119
#define __pyx_int_165472083 __pyx_mstate_global->__pyx_int_165472083
#define __pyx_int_166068038 __pyx_mstate_global->__pyx_int_166068038
#define __pyx_int_169112353 __pyx_mstate_global->__pyx_int_169112353
#define __pyx_int_170471409 __pyx_mstate_global->__pyx_int_170471409
#define __pyx_int_171232032 __pyx_mstate_global->__pyx_int_171232032
#define __pyx_int_173110512 __pyx_mstate_global->__pyx_int_173110512
#define __pyx_int_174562005 __pyx_mstate_global->__pyx_int_174562005
#define __pyx_int_175203516 __pyx_mstate_global->__pyx_int_175203516
#define __pyx_int_177559970 __pyx_mstate_global->__pyx_int_177559970
#define __pyx_int_178322785 __pyx_mstate_global->__pyx_int_178322785
#define __pyx_int_178981920 __pyx_mstate_global->__pyx_int_178981920
#define __pyx_int_180736322 __pyx_mstate_global->__pyx_int_180736322
#define __pyx_int_184566456 __pyx_mstate_global->__pyx_int_184566456
#define __pyx_int_188214648 __pyx_mstate_global->__pyx_int_188214648
#define __pyx_int_190776647 __pyx_mstate_global->__pyx_int_190776647
#define __pyx_int_191989756 __pyx_mstate_global->__pyx_int_191989756
#define __pyx_int_193049109 __pyx_mstate_global->__pyx_int_193049109
#define __pyx_int_196047615 __pyx_mstate_global->__pyx_int_196047615
#define __pyx_int_199292263 __pyx_mstate_global->__pyx_int_199292263
#define __pyx_int_202207497 __pyx_mstate_global->__pyx_int_202207497
#define __pyx_int_203726100 __pyx_mstate_global->__pyx_int_203726100
#define __pyx_int_208169003 __pyx_mstate_global->__pyx_int_208169003
#define __pyx_int_209685500 __pyx_mstate_global->__pyx_int_209685500
#define __pyx_int_213175882 __pyx_mstate_global->__pyx_int_213175882
#define __pyx_int_217886057 __pyx_mstate_global->__pyx_int_217886057
#define __pyx_int_222419149 __pyx_mstate_global->__pyx_int_222419149
#define __pyx_int_227304315 __pyx_mstate_global->__pyx_int_227304315
#define __pyx_int_228825662 __pyx_mstate_global->__pyx_int_228825662
#define __pyx_int_231905918 __pyx_mstate_global->__pyx_int_231905918
#define __pyx_int_233007199 __pyx_mstate_global->__pyx_int_233007199
#define __pyx_int_234936116 __pyx_mstate_global->__pyx_int_234936116
#define __pyx_int_235111476 __pyx_mstate_global->__pyx_int_235111476
#define __pyx_int_236300599 __pyx_mstate_global->__pyx_int_236300599
#define __pyx_int_237498805 __pyx_mstate_global->__pyx_int_237498805
#define __pyx_int_238530126 __pyx_mstate_global->__pyx_int_238530126
#define __pyx_int_238750788 __pyx_mstate_global->__pyx_int_238750788
#define __pyx_int_241904987 __pyx_mstate_global->__pyx_int_241904987
#define __pyx_int_242608964 __pyx_mstate_global->__pyx_int_242608964
#define __pyx_int_243792574 __pyx_mstate_global->__pyx_int_243792574
#define __pyx_int_244411994 __pyx_mstate_global->__pyx_int_244411994
#define __pyx_int_246568357 __pyx_mstate_global->__pyx_int_246568357
#define __pyx_int_246844032 __pyx_mstate_global->__pyx_int_246844032
#define __pyx_int_254343081 __pyx_mstate_global->__pyx_int_254343081
#define __pyx_int_255285684 __pyx_mstate_global->__pyx_int_255285684
#define __pyx_int_255539553 __pyx_mstate_global->__pyx_int_255539553
#define __pyx_int_258104651 __pyx_mstate_global->__pyx_int_258104651
#define __pyx_int_263069812 __pyx_mstate_global->__pyx_int_263069812
#define __pyx_int_263863157 __pyx_mstate_global->__pyx_int_263863157
#define __pyx_int_266373226 __pyx_mstate_global->__pyx_int_266373226
#define __pyx_int_266943092 __pyx_mstate_global->__pyx_int_266943092
#define __pyx_int_267403128 __pyx_mstate_global->__pyx_int_267403128
#define __pyx_int_neg_1 __pyx_mstate_global->__pyx_int_neg_1
#define __pyx_k__18 __pyx_mstate_global->__pyx_k__18
#define __pyx_k__19 __pyx_mstate_global->__pyx_k__19
#define __pyx_k__22 __pyx_mstate_global->__pyx_k__22
#define __pyx_k__23 __pyx_mstate_global->__pyx_k__23
#define __pyx_tuple__3 __pyx_mstate_global->__pyx_tuple__3
#define __pyx_tuple__5 __pyx_mstate_global->__pyx_tuple__5
#define __pyx_tuple__6 __pyx_mstate_global->__pyx_tuple__6
#define __pyx_tuple__7 __pyx_mstate_global->__pyx_tuple__7
#define __pyx_tuple__9 __pyx_mstate_global->__pyx_tuple__9
#define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13
#define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
#define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
#define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20
#define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
#define __pyx_tuple__25 __pyx_mstate_global->__pyx_tuple__25
#define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26
#define __pyx_tuple__27 __pyx_mstate_global->__pyx_tuple__27
#define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28
#define __pyx_tuple__29 __pyx_mstate_global->__pyx_tuple__29
#define __pyx_tuple__30 __pyx_mstate_global->__pyx_tuple__30
#define __pyx_tuple__31 __pyx_mstate_global->__pyx_tuple__31
#define __pyx_tuple__32 __pyx_mstate_global->__pyx_tuple__32
#define __pyx_tuple__33 __pyx_mstate_global->__pyx_tuple__33
#define __pyx_tuple__34 __pyx_mstate_global->__pyx_tuple__34
#define __pyx_tuple__35 __pyx_mstate_global->__pyx_tuple__35
#define __pyx_tuple__36 __pyx_mstate_global->__pyx_tuple__36
#define __pyx_tuple__37 __pyx_mstate_global->__pyx_tuple__37
#define __pyx_tuple__38 __pyx_mstate_global->__pyx_tuple__38
#define __pyx_tuple__39 __pyx_mstate_global->__pyx_tuple__39
#define __pyx_tuple__40 __pyx_mstate_global->__pyx_tuple__40
#define __pyx_tuple__41 __pyx_mstate_global->__pyx_tuple__41
#define __pyx_tuple__42 __pyx_mstate_global->__pyx_tuple__42
#define __pyx_tuple__43 __pyx_mstate_global->__pyx_tuple__43
#define __pyx_tuple__44 __pyx_mstate_global->__pyx_tuple__44
#define __pyx_tuple__45 __pyx_mstate_global->__pyx_tuple__45
#define __pyx_tuple__46 __pyx_mstate_global->__pyx_tuple__46
#define __pyx_tuple__47 __pyx_mstate_global->__pyx_tuple__47
#define __pyx_tuple__48 __pyx_mstate_global->__pyx_tuple__48
#define __pyx_tuple__49 __pyx_mstate_global->__pyx_tuple__49
#define __pyx_tuple__50 __pyx_mstate_global->__pyx_tuple__50
#define __pyx_tuple__51 __pyx_mstate_global->__pyx_tuple__51
#define __pyx_tuple__52 __pyx_mstate_global->__pyx_tuple__52
#define __pyx_tuple__53 __pyx_mstate_global->__pyx_tuple__53
#define __pyx_tuple__54 __pyx_mstate_global->__pyx_tuple__54
#define __pyx_tuple__55 __pyx_mstate_global->__pyx_tuple__55
#define __pyx_tuple__56 __pyx_mstate_global->__pyx_tuple__56
#define __pyx_tuple__57 __pyx_mstate_global->__pyx_tuple__57
#define __pyx_tuple__58 __pyx_mstate_global->__pyx_tuple__58
#define __pyx_tuple__59 __pyx_mstate_global->__pyx_tuple__59
#define __pyx_tuple__60 __pyx_mstate_global->__pyx_tuple__60
#define __pyx_tuple__61 __pyx_mstate_global->__pyx_tuple__61
#define __pyx_tuple__62 __pyx_mstate_global->__pyx_tuple__62
#define __pyx_tuple__63 __pyx_mstate_global->__pyx_tuple__63
#define __pyx_tuple__64 __pyx_mstate_global->__pyx_tuple__64
#define __pyx_tuple__65 __pyx_mstate_global->__pyx_tuple__65
#define __pyx_tuple__66 __pyx_mstate_global->__pyx_tuple__66
#define __pyx_tuple__67 __pyx_mstate_global->__pyx_tuple__67
#define __pyx_tuple__68 __pyx_mstate_global->__pyx_tuple__68
#define __pyx_tuple__69 __pyx_mstate_global->__pyx_tuple__69
#define __pyx_tuple__70 __pyx_mstate_global->__pyx_tuple__70
#define __pyx_tuple__71 __pyx_mstate_global->__pyx_tuple__71
#define __pyx_tuple__72 __pyx_mstate_global->__pyx_tuple__72
#define __pyx_tuple__73 __pyx_mstate_global->__pyx_tuple__73
#define __pyx_tuple__74 __pyx_mstate_global->__pyx_tuple__74
#define __pyx_tuple__76 __pyx_mstate_global->__pyx_tuple__76
#define __pyx_tuple__77 __pyx_mstate_global->__pyx_tuple__77
#define __pyx_tuple__79 __pyx_mstate_global->__pyx_tuple__79
#define __pyx_tuple__82 __pyx_mstate_global->__pyx_tuple__82
#define __pyx_tuple__85 __pyx_mstate_global->__pyx_tuple__85
#define __pyx_tuple__87 __pyx_mstate_global->__pyx_tuple__87
#define __pyx_tuple__88 __pyx_mstate_global->__pyx_tuple__88
#define __pyx_tuple__90 __pyx_mstate_global->__pyx_tuple__90
#define __pyx_tuple__91 __pyx_mstate_global->__pyx_tuple__91
#define __pyx_tuple__93 __pyx_mstate_global->__pyx_tuple__93
#define __pyx_tuple__95 __pyx_mstate_global->__pyx_tuple__95
#define __pyx_tuple__98 __pyx_mstate_global->__pyx_tuple__98
#define __pyx_codeobj__4 __pyx_mstate_global->__pyx_codeobj__4
#define __pyx_codeobj__8 __pyx_mstate_global->__pyx_codeobj__8
#define __pyx_tuple__102 __pyx_mstate_global->__pyx_tuple__102
#define __pyx_tuple__104 __pyx_mstate_global->__pyx_tuple__104
#define __pyx_tuple__107 __pyx_mstate_global->__pyx_tuple__107
#define __pyx_tuple__111 __pyx_mstate_global->__pyx_tuple__111
#define __pyx_tuple__113 __pyx_mstate_global->__pyx_tuple__113
#define __pyx_tuple__116 __pyx_mstate_global->__pyx_tuple__116
#define __pyx_tuple__120 __pyx_mstate_global->__pyx_tuple__120
#define __pyx_tuple__122 __pyx_mstate_global->__pyx_tuple__122
#define __pyx_tuple__125 __pyx_mstate_global->__pyx_tuple__125
#define __pyx_tuple__129 __pyx_mstate_global->__pyx_tuple__129
#define __pyx_tuple__131 __pyx_mstate_global->__pyx_tuple__131
#define __pyx_tuple__133 __pyx_mstate_global->__pyx_tuple__133
#define __pyx_tuple__136 __pyx_mstate_global->__pyx_tuple__136
#define __pyx_tuple__140 __pyx_mstate_global->__pyx_tuple__140
#define __pyx_tuple__142 __pyx_mstate_global->__pyx_tuple__142
#define __pyx_tuple__145 __pyx_mstate_global->__pyx_tuple__145
#define __pyx_tuple__149 __pyx_mstate_global->__pyx_tuple__149
#define __pyx_tuple__151 __pyx_mstate_global->__pyx_tuple__151
#define __pyx_tuple__154 __pyx_mstate_global->__pyx_tuple__154
#define __pyx_tuple__158 __pyx_mstate_global->__pyx_tuple__158
#define __pyx_tuple__160 __pyx_mstate_global->__pyx_tuple__160
#define __pyx_tuple__163 __pyx_mstate_global->__pyx_tuple__163
#define __pyx_tuple__166 __pyx_mstate_global->__pyx_tuple__166
#define __pyx_tuple__168 __pyx_mstate_global->__pyx_tuple__168
#define __pyx_tuple__170 __pyx_mstate_global->__pyx_tuple__170
#define __pyx_tuple__173 __pyx_mstate_global->__pyx_tuple__173
#define __pyx_tuple__178 __pyx_mstate_global->__pyx_tuple__178
#define __pyx_tuple__181 __pyx_mstate_global->__pyx_tuple__181
#define __pyx_tuple__186 __pyx_mstate_global->__pyx_tuple__186
#define __pyx_tuple__189 __pyx_mstate_global->__pyx_tuple__189
#define __pyx_tuple__194 __pyx_mstate_global->__pyx_tuple__194
#define __pyx_tuple__196 __pyx_mstate_global->__pyx_tuple__196
#define __pyx_tuple__199 __pyx_mstate_global->__pyx_tuple__199
#define __pyx_tuple__204 __pyx_mstate_global->__pyx_tuple__204
#define __pyx_tuple__206 __pyx_mstate_global->__pyx_tuple__206
#define __pyx_tuple__208 __pyx_mstate_global->__pyx_tuple__208
#define __pyx_tuple__210 __pyx_mstate_global->__pyx_tuple__210
#define __pyx_tuple__213 __pyx_mstate_global->__pyx_tuple__213
#define __pyx_tuple__217 __pyx_mstate_global->__pyx_tuple__217
#define __pyx_tuple__219 __pyx_mstate_global->__pyx_tuple__219
#define __pyx_tuple__222 __pyx_mstate_global->__pyx_tuple__222
#define __pyx_tuple__223 __pyx_mstate_global->__pyx_tuple__223
#define __pyx_tuple__225 __pyx_mstate_global->__pyx_tuple__225
#define __pyx_tuple__228 __pyx_mstate_global->__pyx_tuple__228
#define __pyx_tuple__230 __pyx_mstate_global->__pyx_tuple__230
#define __pyx_tuple__232 __pyx_mstate_global->__pyx_tuple__232
#define __pyx_tuple__233 __pyx_mstate_global->__pyx_tuple__233
#define __pyx_tuple__235 __pyx_mstate_global->__pyx_tuple__235
#define __pyx_tuple__238 __pyx_mstate_global->__pyx_tuple__238
#define __pyx_tuple__240 __pyx_mstate_global->__pyx_tuple__240
#define __pyx_tuple__244 __pyx_mstate_global->__pyx_tuple__244
#define __pyx_tuple__246 __pyx_mstate_global->__pyx_tuple__246
#define __pyx_tuple__248 __pyx_mstate_global->__pyx_tuple__248
#define __pyx_tuple__251 __pyx_mstate_global->__pyx_tuple__251
#define __pyx_tuple__256 __pyx_mstate_global->__pyx_tuple__256
#define __pyx_tuple__259 __pyx_mstate_global->__pyx_tuple__259
#define __pyx_tuple__264 __pyx_mstate_global->__pyx_tuple__264
#define __pyx_tuple__267 __pyx_mstate_global->__pyx_tuple__267
#define __pyx_tuple__272 __pyx_mstate_global->__pyx_tuple__272
#define __pyx_tuple__275 __pyx_mstate_global->__pyx_tuple__275
#define __pyx_tuple__280 __pyx_mstate_global->__pyx_tuple__280
#define __pyx_tuple__283 __pyx_mstate_global->__pyx_tuple__283
#define __pyx_tuple__286 __pyx_mstate_global->__pyx_tuple__286
#define __pyx_tuple__289 __pyx_mstate_global->__pyx_tuple__289
#define __pyx_tuple__292 __pyx_mstate_global->__pyx_tuple__292
#define __pyx_tuple__294 __pyx_mstate_global->__pyx_tuple__294
#define __pyx_tuple__297 __pyx_mstate_global->__pyx_tuple__297
#define __pyx_tuple__299 __pyx_mstate_global->__pyx_tuple__299
#define __pyx_tuple__301 __pyx_mstate_global->__pyx_tuple__301
#define __pyx_tuple__303 __pyx_mstate_global->__pyx_tuple__303
#define __pyx_tuple__306 __pyx_mstate_global->__pyx_tuple__306
#define __pyx_tuple__310 __pyx_mstate_global->__pyx_tuple__310
#define __pyx_tuple__312 __pyx_mstate_global->__pyx_tuple__312
#define __pyx_tuple__315 __pyx_mstate_global->__pyx_tuple__315
#define __pyx_tuple__319 __pyx_mstate_global->__pyx_tuple__319
#define __pyx_tuple__321 __pyx_mstate_global->__pyx_tuple__321
#define __pyx_tuple__324 __pyx_mstate_global->__pyx_tuple__324
#define __pyx_tuple__326 __pyx_mstate_global->__pyx_tuple__326
#define __pyx_tuple__330 __pyx_mstate_global->__pyx_tuple__330
#define __pyx_tuple__332 __pyx_mstate_global->__pyx_tuple__332
#define __pyx_tuple__335 __pyx_mstate_global->__pyx_tuple__335
#define __pyx_tuple__339 __pyx_mstate_global->__pyx_tuple__339
#define __pyx_tuple__341 __pyx_mstate_global->__pyx_tuple__341
#define __pyx_tuple__344 __pyx_mstate_global->__pyx_tuple__344
#define __pyx_tuple__348 __pyx_mstate_global->__pyx_tuple__348
#define __pyx_tuple__350 __pyx_mstate_global->__pyx_tuple__350
#define __pyx_tuple__353 __pyx_mstate_global->__pyx_tuple__353
#define __pyx_tuple__357 __pyx_mstate_global->__pyx_tuple__357
#define __pyx_tuple__359 __pyx_mstate_global->__pyx_tuple__359
#define __pyx_tuple__362 __pyx_mstate_global->__pyx_tuple__362
#define __pyx_tuple__366 __pyx_mstate_global->__pyx_tuple__366
#define __pyx_tuple__368 __pyx_mstate_global->__pyx_tuple__368
#define __pyx_tuple__371 __pyx_mstate_global->__pyx_tuple__371
#define __pyx_tuple__375 __pyx_mstate_global->__pyx_tuple__375
#define __pyx_tuple__377 __pyx_mstate_global->__pyx_tuple__377
#define __pyx_tuple__380 __pyx_mstate_global->__pyx_tuple__380
#define __pyx_tuple__384 __pyx_mstate_global->__pyx_tuple__384
#define __pyx_tuple__386 __pyx_mstate_global->__pyx_tuple__386
#define __pyx_tuple__389 __pyx_mstate_global->__pyx_tuple__389
#define __pyx_tuple__393 __pyx_mstate_global->__pyx_tuple__393
#define __pyx_tuple__395 __pyx_mstate_global->__pyx_tuple__395
#define __pyx_tuple__398 __pyx_mstate_global->__pyx_tuple__398
#define __pyx_tuple__402 __pyx_mstate_global->__pyx_tuple__402
#define __pyx_tuple__404 __pyx_mstate_global->__pyx_tuple__404
#define __pyx_tuple__407 __pyx_mstate_global->__pyx_tuple__407
#define __pyx_tuple__411 __pyx_mstate_global->__pyx_tuple__411
#define __pyx_tuple__413 __pyx_mstate_global->__pyx_tuple__413
#define __pyx_tuple__416 __pyx_mstate_global->__pyx_tuple__416
#define __pyx_tuple__420 __pyx_mstate_global->__pyx_tuple__420
#define __pyx_tuple__422 __pyx_mstate_global->__pyx_tuple__422
#define __pyx_tuple__425 __pyx_mstate_global->__pyx_tuple__425
#define __pyx_tuple__428 __pyx_mstate_global->__pyx_tuple__428
#define __pyx_tuple__430 __pyx_mstate_global->__pyx_tuple__430
#define __pyx_tuple__432 __pyx_mstate_global->__pyx_tuple__432
#define __pyx_tuple__435 __pyx_mstate_global->__pyx_tuple__435
#define __pyx_tuple__438 __pyx_mstate_global->__pyx_tuple__438
#define __pyx_tuple__440 __pyx_mstate_global->__pyx_tuple__440
#define __pyx_tuple__442 __pyx_mstate_global->__pyx_tuple__442
#define __pyx_tuple__445 __pyx_mstate_global->__pyx_tuple__445
#define __pyx_tuple__450 __pyx_mstate_global->__pyx_tuple__450
#define __pyx_tuple__453 __pyx_mstate_global->__pyx_tuple__453
#define __pyx_tuple__456 __pyx_mstate_global->__pyx_tuple__456
#define __pyx_tuple__458 __pyx_mstate_global->__pyx_tuple__458
#define __pyx_tuple__460 __pyx_mstate_global->__pyx_tuple__460
#define __pyx_tuple__463 __pyx_mstate_global->__pyx_tuple__463
#define __pyx_tuple__467 __pyx_mstate_global->__pyx_tuple__467
#define __pyx_tuple__469 __pyx_mstate_global->__pyx_tuple__469
#define __pyx_tuple__472 __pyx_mstate_global->__pyx_tuple__472
#define __pyx_tuple__476 __pyx_mstate_global->__pyx_tuple__476
#define __pyx_tuple__478 __pyx_mstate_global->__pyx_tuple__478
#define __pyx_tuple__481 __pyx_mstate_global->__pyx_tuple__481
#define __pyx_tuple__485 __pyx_mstate_global->__pyx_tuple__485
#define __pyx_tuple__487 __pyx_mstate_global->__pyx_tuple__487
#define __pyx_tuple__490 __pyx_mstate_global->__pyx_tuple__490
#define __pyx_tuple__495 __pyx_mstate_global->__pyx_tuple__495
#define __pyx_tuple__498 __pyx_mstate_global->__pyx_tuple__498
#define __pyx_tuple__501 __pyx_mstate_global->__pyx_tuple__501
#define __pyx_tuple__503 __pyx_mstate_global->__pyx_tuple__503
#define __pyx_tuple__505 __pyx_mstate_global->__pyx_tuple__505
#define __pyx_tuple__508 __pyx_mstate_global->__pyx_tuple__508
#define __pyx_tuple__512 __pyx_mstate_global->__pyx_tuple__512
#define __pyx_tuple__514 __pyx_mstate_global->__pyx_tuple__514
#define __pyx_tuple__517 __pyx_mstate_global->__pyx_tuple__517
#define __pyx_tuple__521 __pyx_mstate_global->__pyx_tuple__521
#define __pyx_tuple__523 __pyx_mstate_global->__pyx_tuple__523
#define __pyx_tuple__526 __pyx_mstate_global->__pyx_tuple__526
#define __pyx_tuple__528 __pyx_mstate_global->__pyx_tuple__528
#define __pyx_tuple__530 __pyx_mstate_global->__pyx_tuple__530
#define __pyx_tuple__533 __pyx_mstate_global->__pyx_tuple__533
#define __pyx_tuple__535 __pyx_mstate_global->__pyx_tuple__535
#define __pyx_tuple__537 __pyx_mstate_global->__pyx_tuple__537
#define __pyx_tuple__539 __pyx_mstate_global->__pyx_tuple__539
#define __pyx_tuple__541 __pyx_mstate_global->__pyx_tuple__541
#define __pyx_tuple__544 __pyx_mstate_global->__pyx_tuple__544
#define __pyx_tuple__548 __pyx_mstate_global->__pyx_tuple__548
#define __pyx_tuple__550 __pyx_mstate_global->__pyx_tuple__550
#define __pyx_tuple__553 __pyx_mstate_global->__pyx_tuple__553
#define __pyx_tuple__556 __pyx_mstate_global->__pyx_tuple__556
#define __pyx_tuple__558 __pyx_mstate_global->__pyx_tuple__558
#define __pyx_tuple__560 __pyx_mstate_global->__pyx_tuple__560
#define __pyx_tuple__563 __pyx_mstate_global->__pyx_tuple__563
#define __pyx_tuple__566 __pyx_mstate_global->__pyx_tuple__566
#define __pyx_tuple__569 __pyx_mstate_global->__pyx_tuple__569
#define __pyx_tuple__572 __pyx_mstate_global->__pyx_tuple__572
#define __pyx_tuple__575 __pyx_mstate_global->__pyx_tuple__575
#define __pyx_tuple__577 __pyx_mstate_global->__pyx_tuple__577
#define __pyx_tuple__579 __pyx_mstate_global->__pyx_tuple__579
#define __pyx_tuple__582 __pyx_mstate_global->__pyx_tuple__582
#define __pyx_tuple__586 __pyx_mstate_global->__pyx_tuple__586
#define __pyx_tuple__588 __pyx_mstate_global->__pyx_tuple__588
#define __pyx_tuple__591 __pyx_mstate_global->__pyx_tuple__591
#define __pyx_tuple__594 __pyx_mstate_global->__pyx_tuple__594
#define __pyx_tuple__596 __pyx_mstate_global->__pyx_tuple__596
#define __pyx_tuple__598 __pyx_mstate_global->__pyx_tuple__598
#define __pyx_tuple__601 __pyx_mstate_global->__pyx_tuple__601
#define __pyx_tuple__606 __pyx_mstate_global->__pyx_tuple__606
#define __pyx_tuple__609 __pyx_mstate_global->__pyx_tuple__609
#define __pyx_tuple__612 __pyx_mstate_global->__pyx_tuple__612
#define __pyx_tuple__614 __pyx_mstate_global->__pyx_tuple__614
#define __pyx_tuple__616 __pyx_mstate_global->__pyx_tuple__616
#define __pyx_tuple__619 __pyx_mstate_global->__pyx_tuple__619
#define __pyx_tuple__623 __pyx_mstate_global->__pyx_tuple__623
#define __pyx_tuple__625 __pyx_mstate_global->__pyx_tuple__625
#define __pyx_tuple__628 __pyx_mstate_global->__pyx_tuple__628
#define __pyx_tuple__629 __pyx_mstate_global->__pyx_tuple__629
#define __pyx_tuple__635 __pyx_mstate_global->__pyx_tuple__635
#define __pyx_tuple__638 __pyx_mstate_global->__pyx_tuple__638
#define __pyx_tuple__641 __pyx_mstate_global->__pyx_tuple__641
#define __pyx_tuple__643 __pyx_mstate_global->__pyx_tuple__643
#define __pyx_tuple__645 __pyx_mstate_global->__pyx_tuple__645
#define __pyx_tuple__648 __pyx_mstate_global->__pyx_tuple__648
#define __pyx_tuple__654 __pyx_mstate_global->__pyx_tuple__654
#define __pyx_tuple__657 __pyx_mstate_global->__pyx_tuple__657
#define __pyx_tuple__662 __pyx_mstate_global->__pyx_tuple__662
#define __pyx_tuple__664 __pyx_mstate_global->__pyx_tuple__664
#define __pyx_tuple__667 __pyx_mstate_global->__pyx_tuple__667
#define __pyx_tuple__670 __pyx_mstate_global->__pyx_tuple__670
#define __pyx_tuple__672 __pyx_mstate_global->__pyx_tuple__672
#define __pyx_tuple__674 __pyx_mstate_global->__pyx_tuple__674
#define __pyx_tuple__677 __pyx_mstate_global->__pyx_tuple__677
#define __pyx_tuple__681 __pyx_mstate_global->__pyx_tuple__681
#define __pyx_tuple__683 __pyx_mstate_global->__pyx_tuple__683
#define __pyx_tuple__686 __pyx_mstate_global->__pyx_tuple__686
#define __pyx_tuple__690 __pyx_mstate_global->__pyx_tuple__690
#define __pyx_tuple__692 __pyx_mstate_global->__pyx_tuple__692
#define __pyx_tuple__695 __pyx_mstate_global->__pyx_tuple__695
#define __pyx_tuple__698 __pyx_mstate_global->__pyx_tuple__698
#define __pyx_tuple__700 __pyx_mstate_global->__pyx_tuple__700
#define __pyx_tuple__702 __pyx_mstate_global->__pyx_tuple__702
#define __pyx_tuple__704 __pyx_mstate_global->__pyx_tuple__704
#define __pyx_tuple__708 __pyx_mstate_global->__pyx_tuple__708
#define __pyx_tuple__711 __pyx_mstate_global->__pyx_tuple__711
#define __pyx_tuple__713 __pyx_mstate_global->__pyx_tuple__713
#define __pyx_tuple__715 __pyx_mstate_global->__pyx_tuple__715
#define __pyx_tuple__717 __pyx_mstate_global->__pyx_tuple__717
#define __pyx_tuple__721 __pyx_mstate_global->__pyx_tuple__721
#define __pyx_tuple__724 __pyx_mstate_global->__pyx_tuple__724
#define __pyx_tuple__728 __pyx_mstate_global->__pyx_tuple__728
#define __pyx_tuple__730 __pyx_mstate_global->__pyx_tuple__730
#define __pyx_tuple__733 __pyx_mstate_global->__pyx_tuple__733
#define __pyx_tuple__738 __pyx_mstate_global->__pyx_tuple__738
#define __pyx_tuple__741 __pyx_mstate_global->__pyx_tuple__741
#define __pyx_tuple__744 __pyx_mstate_global->__pyx_tuple__744
#define __pyx_tuple__746 __pyx_mstate_global->__pyx_tuple__746
#define __pyx_tuple__748 __pyx_mstate_global->__pyx_tuple__748
#define __pyx_tuple__751 __pyx_mstate_global->__pyx_tuple__751
#define __pyx_tuple__754 __pyx_mstate_global->__pyx_tuple__754
#define __pyx_tuple__756 __pyx_mstate_global->__pyx_tuple__756
#define __pyx_tuple__758 __pyx_mstate_global->__pyx_tuple__758
#define __pyx_tuple__761 __pyx_mstate_global->__pyx_tuple__761
#define __pyx_tuple__764 __pyx_mstate_global->__pyx_tuple__764
#define __pyx_tuple__767 __pyx_mstate_global->__pyx_tuple__767
#define __pyx_tuple__770 __pyx_mstate_global->__pyx_tuple__770
#define __pyx_tuple__775 __pyx_mstate_global->__pyx_tuple__775
#define __pyx_tuple__777 __pyx_mstate_global->__pyx_tuple__777
#define __pyx_tuple__779 __pyx_mstate_global->__pyx_tuple__779
#define __pyx_tuple__783 __pyx_mstate_global->__pyx_tuple__783
#define __pyx_tuple__784 __pyx_mstate_global->__pyx_tuple__784
#define __pyx_tuple__786 __pyx_mstate_global->__pyx_tuple__786
#define __pyx_tuple__789 __pyx_mstate_global->__pyx_tuple__789
#define __pyx_tuple__794 __pyx_mstate_global->__pyx_tuple__794
#define __pyx_tuple__797 __pyx_mstate_global->__pyx_tuple__797
#define __pyx_tuple__802 __pyx_mstate_global->__pyx_tuple__802
#define __pyx_tuple__808 __pyx_mstate_global->__pyx_tuple__808
#define __pyx_tuple__811 __pyx_mstate_global->__pyx_tuple__811
#define __pyx_tuple__816 __pyx_mstate_global->__pyx_tuple__816
#define __pyx_tuple__819 __pyx_mstate_global->__pyx_tuple__819
#define __pyx_tuple__824 __pyx_mstate_global->__pyx_tuple__824
#define __pyx_tuple__826 __pyx_mstate_global->__pyx_tuple__826
#define __pyx_tuple__829 __pyx_mstate_global->__pyx_tuple__829
#define __pyx_tuple__834 __pyx_mstate_global->__pyx_tuple__834
#define __pyx_tuple__838 __pyx_mstate_global->__pyx_tuple__838
#define __pyx_tuple__840 __pyx_mstate_global->__pyx_tuple__840
#define __pyx_tuple__842 __pyx_mstate_global->__pyx_tuple__842
#define __pyx_tuple__844 __pyx_mstate_global->__pyx_tuple__844
#define __pyx_tuple__845 __pyx_mstate_global->__pyx_tuple__845
#define __pyx_tuple__849 __pyx_mstate_global->__pyx_tuple__849
#define __pyx_tuple__851 __pyx_mstate_global->__pyx_tuple__851
#define __pyx_tuple__854 __pyx_mstate_global->__pyx_tuple__854
#define __pyx_codeobj__10 __pyx_mstate_global->__pyx_codeobj__10
#define __pyx_codeobj__11 __pyx_mstate_global->__pyx_codeobj__11
#define __pyx_codeobj__12 __pyx_mstate_global->__pyx_codeobj__12
#define __pyx_codeobj__15 __pyx_mstate_global->__pyx_codeobj__15
#define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16
#define __pyx_codeobj__21 __pyx_mstate_global->__pyx_codeobj__21
#define __pyx_codeobj__75 __pyx_mstate_global->__pyx_codeobj__75
#define __pyx_codeobj__78 __pyx_mstate_global->__pyx_codeobj__78
#define __pyx_codeobj__80 __pyx_mstate_global->__pyx_codeobj__80
#define __pyx_codeobj__81 __pyx_mstate_global->__pyx_codeobj__81
#define __pyx_codeobj__83 __pyx_mstate_global->__pyx_codeobj__83
#define __pyx_codeobj__84 __pyx_mstate_global->__pyx_codeobj__84
#define __pyx_codeobj__86 __pyx_mstate_global->__pyx_codeobj__86
#define __pyx_codeobj__89 __pyx_mstate_global->__pyx_codeobj__89
#define __pyx_codeobj__92 __pyx_mstate_global->__pyx_codeobj__92
#define __pyx_codeobj__94 __pyx_mstate_global->__pyx_codeobj__94
#define __pyx_codeobj__96 __pyx_mstate_global->__pyx_codeobj__96
#define __pyx_codeobj__97 __pyx_mstate_global->__pyx_codeobj__97
#define __pyx_codeobj__99 __pyx_mstate_global->__pyx_codeobj__99
#define __pyx_codeobj__100 __pyx_mstate_global->__pyx_codeobj__100
#define __pyx_codeobj__101 __pyx_mstate_global->__pyx_codeobj__101
#define __pyx_codeobj__103 __pyx_mstate_global->__pyx_codeobj__103
#define __pyx_codeobj__105 __pyx_mstate_global->__pyx_codeobj__105
#define __pyx_codeobj__106 __pyx_mstate_global->__pyx_codeobj__106
#define __pyx_codeobj__108 __pyx_mstate_global->__pyx_codeobj__108
#define __pyx_codeobj__109 __pyx_mstate_global->__pyx_codeobj__109
#define __pyx_codeobj__110 __pyx_mstate_global->__pyx_codeobj__110
#define __pyx_codeobj__112 __pyx_mstate_global->__pyx_codeobj__112
#define __pyx_codeobj__114 __pyx_mstate_global->__pyx_codeobj__114
#define __pyx_codeobj__115 __pyx_mstate_global->__pyx_codeobj__115
#define __pyx_codeobj__117 __pyx_mstate_global->__pyx_codeobj__117
#define __pyx_codeobj__118 __pyx_mstate_global->__pyx_codeobj__118
#define __pyx_codeobj__119 __pyx_mstate_global->__pyx_codeobj__119
#define __pyx_codeobj__121 __pyx_mstate_global->__pyx_codeobj__121
#define __pyx_codeobj__123 __pyx_mstate_global->__pyx_codeobj__123
#define __pyx_codeobj__124 __pyx_mstate_global->__pyx_codeobj__124
#define __pyx_codeobj__126 __pyx_mstate_global->__pyx_codeobj__126
#define __pyx_codeobj__127 __pyx_mstate_global->__pyx_codeobj__127
#define __pyx_codeobj__128 __pyx_mstate_global->__pyx_codeobj__128
#define __pyx_codeobj__130 __pyx_mstate_global->__pyx_codeobj__130
#define __pyx_codeobj__132 __pyx_mstate_global->__pyx_codeobj__132
#define __pyx_codeobj__134 __pyx_mstate_global->__pyx_codeobj__134
#define __pyx_codeobj__135 __pyx_mstate_global->__pyx_codeobj__135
#define __pyx_codeobj__137 __pyx_mstate_global->__pyx_codeobj__137
#define __pyx_codeobj__138 __pyx_mstate_global->__pyx_codeobj__138
#define __pyx_codeobj__139 __pyx_mstate_global->__pyx_codeobj__139
#define __pyx_codeobj__141 __pyx_mstate_global->__pyx_codeobj__141
#define __pyx_codeobj__143 __pyx_mstate_global->__pyx_codeobj__143
#define __pyx_codeobj__144 __pyx_mstate_global->__pyx_codeobj__144
#define __pyx_codeobj__146 __pyx_mstate_global->__pyx_codeobj__146
#define __pyx_codeobj__147 __pyx_mstate_global->__pyx_codeobj__147
#define __pyx_codeobj__148 __pyx_mstate_global->__pyx_codeobj__148
#define __pyx_codeobj__150 __pyx_mstate_global->__pyx_codeobj__150
#define __pyx_codeobj__152 __pyx_mstate_global->__pyx_codeobj__152
#define __pyx_codeobj__153 __pyx_mstate_global->__pyx_codeobj__153
#define __pyx_codeobj__155 __pyx_mstate_global->__pyx_codeobj__155
#define __pyx_codeobj__156 __pyx_mstate_global->__pyx_codeobj__156
#define __pyx_codeobj__157 __pyx_mstate_global->__pyx_codeobj__157
#define __pyx_codeobj__159 __pyx_mstate_global->__pyx_codeobj__159
#define __pyx_codeobj__161 __pyx_mstate_global->__pyx_codeobj__161
#define __pyx_codeobj__162 __pyx_mstate_global->__pyx_codeobj__162
#define __pyx_codeobj__164 __pyx_mstate_global->__pyx_codeobj__164
#define __pyx_codeobj__165 __pyx_mstate_global->__pyx_codeobj__165
#define __pyx_codeobj__167 __pyx_mstate_global->__pyx_codeobj__167
#define __pyx_codeobj__169 __pyx_mstate_global->__pyx_codeobj__169
#define __pyx_codeobj__171 __pyx_mstate_global->__pyx_codeobj__171
#define __pyx_codeobj__172 __pyx_mstate_global->__pyx_codeobj__172
#define __pyx_codeobj__174 __pyx_mstate_global->__pyx_codeobj__174
#define __pyx_codeobj__175 __pyx_mstate_global->__pyx_codeobj__175
#define __pyx_codeobj__176 __pyx_mstate_global->__pyx_codeobj__176
#define __pyx_codeobj__177 __pyx_mstate_global->__pyx_codeobj__177
#define __pyx_codeobj__179 __pyx_mstate_global->__pyx_codeobj__179
#define __pyx_codeobj__180 __pyx_mstate_global->__pyx_codeobj__180
#define __pyx_codeobj__182 __pyx_mstate_global->__pyx_codeobj__182
#define __pyx_codeobj__183 __pyx_mstate_global->__pyx_codeobj__183
#define __pyx_codeobj__184 __pyx_mstate_global->__pyx_codeobj__184
#define __pyx_codeobj__185 __pyx_mstate_global->__pyx_codeobj__185
#define __pyx_codeobj__187 __pyx_mstate_global->__pyx_codeobj__187
#define __pyx_codeobj__188 __pyx_mstate_global->__pyx_codeobj__188
#define __pyx_codeobj__190 __pyx_mstate_global->__pyx_codeobj__190
#define __pyx_codeobj__191 __pyx_mstate_global->__pyx_codeobj__191
#define __pyx_codeobj__192 __pyx_mstate_global->__pyx_codeobj__192
#define __pyx_codeobj__193 __pyx_mstate_global->__pyx_codeobj__193
#define __pyx_codeobj__195 __pyx_mstate_global->__pyx_codeobj__195
#define __pyx_codeobj__197 __pyx_mstate_global->__pyx_codeobj__197
#define __pyx_codeobj__198 __pyx_mstate_global->__pyx_codeobj__198
#define __pyx_codeobj__200 __pyx_mstate_global->__pyx_codeobj__200
#define __pyx_codeobj__201 __pyx_mstate_global->__pyx_codeobj__201
#define __pyx_codeobj__202 __pyx_mstate_global->__pyx_codeobj__202
#define __pyx_codeobj__203 __pyx_mstate_global->__pyx_codeobj__203
#define __pyx_codeobj__205 __pyx_mstate_global->__pyx_codeobj__205
#define __pyx_codeobj__207 __pyx_mstate_global->__pyx_codeobj__207
#define __pyx_codeobj__209 __pyx_mstate_global->__pyx_codeobj__209
#define __pyx_codeobj__211 __pyx_mstate_global->__pyx_codeobj__211
#define __pyx_codeobj__212 __pyx_mstate_global->__pyx_codeobj__212
#define __pyx_codeobj__214 __pyx_mstate_global->__pyx_codeobj__214
#define __pyx_codeobj__215 __pyx_mstate_global->__pyx_codeobj__215
#define __pyx_codeobj__216 __pyx_mstate_global->__pyx_codeobj__216
#define __pyx_codeobj__218 __pyx_mstate_global->__pyx_codeobj__218
#define __pyx_codeobj__220 __pyx_mstate_global->__pyx_codeobj__220
#define __pyx_codeobj__221 __pyx_mstate_global->__pyx_codeobj__221
#define __pyx_codeobj__224 __pyx_mstate_global->__pyx_codeobj__224
#define __pyx_codeobj__226 __pyx_mstate_global->__pyx_codeobj__226
#define __pyx_codeobj__227 __pyx_mstate_global->__pyx_codeobj__227
#define __pyx_codeobj__229 __pyx_mstate_global->__pyx_codeobj__229
#define __pyx_codeobj__231 __pyx_mstate_global->__pyx_codeobj__231
#define __pyx_codeobj__234 __pyx_mstate_global->__pyx_codeobj__234
#define __pyx_codeobj__236 __pyx_mstate_global->__pyx_codeobj__236
#define __pyx_codeobj__237 __pyx_mstate_global->__pyx_codeobj__237
#define __pyx_codeobj__239 __pyx_mstate_global->__pyx_codeobj__239
#define __pyx_codeobj__241 __pyx_mstate_global->__pyx_codeobj__241
#define __pyx_codeobj__242 __pyx_mstate_global->__pyx_codeobj__242
#define __pyx_codeobj__243 __pyx_mstate_global->__pyx_codeobj__243
#define __pyx_codeobj__245 __pyx_mstate_global->__pyx_codeobj__245
#define __pyx_codeobj__247 __pyx_mstate_global->__pyx_codeobj__247
#define __pyx_codeobj__249 __pyx_mstate_global->__pyx_codeobj__249
#define __pyx_codeobj__250 __pyx_mstate_global->__pyx_codeobj__250
#define __pyx_codeobj__252 __pyx_mstate_global->__pyx_codeobj__252
#define __pyx_codeobj__253 __pyx_mstate_global->__pyx_codeobj__253
#define __pyx_codeobj__254 __pyx_mstate_global->__pyx_codeobj__254
#define __pyx_codeobj__255 __pyx_mstate_global->__pyx_codeobj__255
#define __pyx_codeobj__257 __pyx_mstate_global->__pyx_codeobj__257
#define __pyx_codeobj__258 __pyx_mstate_global->__pyx_codeobj__258
#define __pyx_codeobj__260 __pyx_mstate_global->__pyx_codeobj__260
#define __pyx_codeobj__261 __pyx_mstate_global->__pyx_codeobj__261
#define __pyx_codeobj__262 __pyx_mstate_global->__pyx_codeobj__262
#define __pyx_codeobj__263 __pyx_mstate_global->__pyx_codeobj__263
#define __pyx_codeobj__265 __pyx_mstate_global->__pyx_codeobj__265
#define __pyx_codeobj__266 __pyx_mstate_global->__pyx_codeobj__266
#define __pyx_codeobj__268 __pyx_mstate_global->__pyx_codeobj__268
#define __pyx_codeobj__269 __pyx_mstate_global->__pyx_codeobj__269
#define __pyx_codeobj__270 __pyx_mstate_global->__pyx_codeobj__270
#define __pyx_codeobj__271 __pyx_mstate_global->__pyx_codeobj__271
#define __pyx_codeobj__273 __pyx_mstate_global->__pyx_codeobj__273
#define __pyx_codeobj__274 __pyx_mstate_global->__pyx_codeobj__274
#define __pyx_codeobj__276 __pyx_mstate_global->__pyx_codeobj__276
#define __pyx_codeobj__277 __pyx_mstate_global->__pyx_codeobj__277
#define __pyx_codeobj__278 __pyx_mstate_global->__pyx_codeobj__278
#define __pyx_codeobj__279 __pyx_mstate_global->__pyx_codeobj__279
#define __pyx_codeobj__281 __pyx_mstate_global->__pyx_codeobj__281
#define __pyx_codeobj__282 __pyx_mstate_global->__pyx_codeobj__282
#define __pyx_codeobj__284 __pyx_mstate_global->__pyx_codeobj__284
#define __pyx_codeobj__285 __pyx_mstate_global->__pyx_codeobj__285
#define __pyx_codeobj__287 __pyx_mstate_global->__pyx_codeobj__287
#define __pyx_codeobj__288 __pyx_mstate_global->__pyx_codeobj__288
#define __pyx_codeobj__290 __pyx_mstate_global->__pyx_codeobj__290
#define __pyx_codeobj__291 __pyx_mstate_global->__pyx_codeobj__291
#define __pyx_codeobj__293 __pyx_mstate_global->__pyx_codeobj__293
#define __pyx_codeobj__295 __pyx_mstate_global->__pyx_codeobj__295
#define __pyx_codeobj__296 __pyx_mstate_global->__pyx_codeobj__296
#define __pyx_codeobj__298 __pyx_mstate_global->__pyx_codeobj__298
#define __pyx_codeobj__300 __pyx_mstate_global->__pyx_codeobj__300
#define __pyx_codeobj__302 __pyx_mstate_global->__pyx_codeobj__302
#define __pyx_codeobj__304 __pyx_mstate_global->__pyx_codeobj__304
#define __pyx_codeobj__305 __pyx_mstate_global->__pyx_codeobj__305
#define __pyx_codeobj__307 __pyx_mstate_global->__pyx_codeobj__307
#define __pyx_codeobj__308 __pyx_mstate_global->__pyx_codeobj__308
#define __pyx_codeobj__309 __pyx_mstate_global->__pyx_codeobj__309
#define __pyx_codeobj__311 __pyx_mstate_global->__pyx_codeobj__311
#define __pyx_codeobj__313 __pyx_mstate_global->__pyx_codeobj__313
#define __pyx_codeobj__314 __pyx_mstate_global->__pyx_codeobj__314
#define __pyx_codeobj__316 __pyx_mstate_global->__pyx_codeobj__316
#define __pyx_codeobj__317 __pyx_mstate_global->__pyx_codeobj__317
#define __pyx_codeobj__318 __pyx_mstate_global->__pyx_codeobj__318
#define __pyx_codeobj__320 __pyx_mstate_global->__pyx_codeobj__320
#define __pyx_codeobj__322 __pyx_mstate_global->__pyx_codeobj__322
#define __pyx_codeobj__323 __pyx_mstate_global->__pyx_codeobj__323
#define __pyx_codeobj__325 __pyx_mstate_global->__pyx_codeobj__325
#define __pyx_codeobj__327 __pyx_mstate_global->__pyx_codeobj__327
#define __pyx_codeobj__328 __pyx_mstate_global->__pyx_codeobj__328
#define __pyx_codeobj__329 __pyx_mstate_global->__pyx_codeobj__329
#define __pyx_codeobj__331 __pyx_mstate_global->__pyx_codeobj__331
#define __pyx_codeobj__333 __pyx_mstate_global->__pyx_codeobj__333
#define __pyx_codeobj__334 __pyx_mstate_global->__pyx_codeobj__334
#define __pyx_codeobj__336 __pyx_mstate_global->__pyx_codeobj__336
#define __pyx_codeobj__337 __pyx_mstate_global->__pyx_codeobj__337
#define __pyx_codeobj__338 __pyx_mstate_global->__pyx_codeobj__338
#define __pyx_codeobj__340 __pyx_mstate_global->__pyx_codeobj__340
#define __pyx_codeobj__342 __pyx_mstate_global->__pyx_codeobj__342
#define __pyx_codeobj__343 __pyx_mstate_global->__pyx_codeobj__343
#define __pyx_codeobj__345 __pyx_mstate_global->__pyx_codeobj__345
#define __pyx_codeobj__346 __pyx_mstate_global->__pyx_codeobj__346
#define __pyx_codeobj__347 __pyx_mstate_global->__pyx_codeobj__347
#define __pyx_codeobj__349 __pyx_mstate_global->__pyx_codeobj__349
#define __pyx_codeobj__351 __pyx_mstate_global->__pyx_codeobj__351
#define __pyx_codeobj__352 __pyx_mstate_global->__pyx_codeobj__352
#define __pyx_codeobj__354 __pyx_mstate_global->__pyx_codeobj__354
#define __pyx_codeobj__355 __pyx_mstate_global->__pyx_codeobj__355
#define __pyx_codeobj__356 __pyx_mstate_global->__pyx_codeobj__356
#define __pyx_codeobj__358 __pyx_mstate_global->__pyx_codeobj__358
#define __pyx_codeobj__360 __pyx_mstate_global->__pyx_codeobj__360
#define __pyx_codeobj__361 __pyx_mstate_global->__pyx_codeobj__361
#define __pyx_codeobj__363 __pyx_mstate_global->__pyx_codeobj__363
#define __pyx_codeobj__364 __pyx_mstate_global->__pyx_codeobj__364
#define __pyx_codeobj__365 __pyx_mstate_global->__pyx_codeobj__365
#define __pyx_codeobj__367 __pyx_mstate_global->__pyx_codeobj__367
#define __pyx_codeobj__369 __pyx_mstate_global->__pyx_codeobj__369
#define __pyx_codeobj__370 __pyx_mstate_global->__pyx_codeobj__370
#define __pyx_codeobj__372 __pyx_mstate_global->__pyx_codeobj__372
#define __pyx_codeobj__373 __pyx_mstate_global->__pyx_codeobj__373
#define __pyx_codeobj__374 __pyx_mstate_global->__pyx_codeobj__374
#define __pyx_codeobj__376 __pyx_mstate_global->__pyx_codeobj__376
#define __pyx_codeobj__378 __pyx_mstate_global->__pyx_codeobj__378
#define __pyx_codeobj__379 __pyx_mstate_global->__pyx_codeobj__379
#define __pyx_codeobj__381 __pyx_mstate_global->__pyx_codeobj__381
#define __pyx_codeobj__382 __pyx_mstate_global->__pyx_codeobj__382
#define __pyx_codeobj__383 __pyx_mstate_global->__pyx_codeobj__383
#define __pyx_codeobj__385 __pyx_mstate_global->__pyx_codeobj__385
#define __pyx_codeobj__387 __pyx_mstate_global->__pyx_codeobj__387
#define __pyx_codeobj__388 __pyx_mstate_global->__pyx_codeobj__388
#define __pyx_codeobj__390 __pyx_mstate_global->__pyx_codeobj__390
#define __pyx_codeobj__391 __pyx_mstate_global->__pyx_codeobj__391
#define __pyx_codeobj__392 __pyx_mstate_global->__pyx_codeobj__392
#define __pyx_codeobj__394 __pyx_mstate_global->__pyx_codeobj__394
#define __pyx_codeobj__396 __pyx_mstate_global->__pyx_codeobj__396
#define __pyx_codeobj__397 __pyx_mstate_global->__pyx_codeobj__397
#define __pyx_codeobj__399 __pyx_mstate_global->__pyx_codeobj__399
#define __pyx_codeobj__400 __pyx_mstate_global->__pyx_codeobj__400
#define __pyx_codeobj__401 __pyx_mstate_global->__pyx_codeobj__401
#define __pyx_codeobj__403 __pyx_mstate_global->__pyx_codeobj__403
#define __pyx_codeobj__405 __pyx_mstate_global->__pyx_codeobj__405
#define __pyx_codeobj__406 __pyx_mstate_global->__pyx_codeobj__406
#define __pyx_codeobj__408 __pyx_mstate_global->__pyx_codeobj__408
#define __pyx_codeobj__409 __pyx_mstate_global->__pyx_codeobj__409
#define __pyx_codeobj__410 __pyx_mstate_global->__pyx_codeobj__410
#define __pyx_codeobj__412 __pyx_mstate_global->__pyx_codeobj__412
#define __pyx_codeobj__414 __pyx_mstate_global->__pyx_codeobj__414
#define __pyx_codeobj__415 __pyx_mstate_global->__pyx_codeobj__415
#define __pyx_codeobj__417 __pyx_mstate_global->__pyx_codeobj__417
#define __pyx_codeobj__418 __pyx_mstate_global->__pyx_codeobj__418
#define __pyx_codeobj__419 __pyx_mstate_global->__pyx_codeobj__419
#define __pyx_codeobj__421 __pyx_mstate_global->__pyx_codeobj__421
#define __pyx_codeobj__423 __pyx_mstate_global->__pyx_codeobj__423
#define __pyx_codeobj__424 __pyx_mstate_global->__pyx_codeobj__424
#define __pyx_codeobj__426 __pyx_mstate_global->__pyx_codeobj__426
#define __pyx_codeobj__427 __pyx_mstate_global->__pyx_codeobj__427
#define __pyx_codeobj__429 __pyx_mstate_global->__pyx_codeobj__429
#define __pyx_codeobj__431 __pyx_mstate_global->__pyx_codeobj__431
#define __pyx_codeobj__433 __pyx_mstate_global->__pyx_codeobj__433
#define __pyx_codeobj__434 __pyx_mstate_global->__pyx_codeobj__434
#define __pyx_codeobj__436 __pyx_mstate_global->__pyx_codeobj__436
#define __pyx_codeobj__437 __pyx_mstate_global->__pyx_codeobj__437
#define __pyx_codeobj__439 __pyx_mstate_global->__pyx_codeobj__439
#define __pyx_codeobj__441 __pyx_mstate_global->__pyx_codeobj__441
#define __pyx_codeobj__443 __pyx_mstate_global->__pyx_codeobj__443
#define __pyx_codeobj__444 __pyx_mstate_global->__pyx_codeobj__444
#define __pyx_codeobj__446 __pyx_mstate_global->__pyx_codeobj__446
#define __pyx_codeobj__447 __pyx_mstate_global->__pyx_codeobj__447
#define __pyx_codeobj__448 __pyx_mstate_global->__pyx_codeobj__448
#define __pyx_codeobj__449 __pyx_mstate_global->__pyx_codeobj__449
#define __pyx_codeobj__451 __pyx_mstate_global->__pyx_codeobj__451
#define __pyx_codeobj__452 __pyx_mstate_global->__pyx_codeobj__452
#define __pyx_codeobj__454 __pyx_mstate_global->__pyx_codeobj__454
#define __pyx_codeobj__455 __pyx_mstate_global->__pyx_codeobj__455
#define __pyx_codeobj__457 __pyx_mstate_global->__pyx_codeobj__457
#define __pyx_codeobj__459 __pyx_mstate_global->__pyx_codeobj__459
#define __pyx_codeobj__461 __pyx_mstate_global->__pyx_codeobj__461
#define __pyx_codeobj__462 __pyx_mstate_global->__pyx_codeobj__462
#define __pyx_codeobj__464 __pyx_mstate_global->__pyx_codeobj__464
#define __pyx_codeobj__465 __pyx_mstate_global->__pyx_codeobj__465
#define __pyx_codeobj__466 __pyx_mstate_global->__pyx_codeobj__466
#define __pyx_codeobj__468 __pyx_mstate_global->__pyx_codeobj__468
#define __pyx_codeobj__470 __pyx_mstate_global->__pyx_codeobj__470
#define __pyx_codeobj__471 __pyx_mstate_global->__pyx_codeobj__471
#define __pyx_codeobj__473 __pyx_mstate_global->__pyx_codeobj__473
#define __pyx_codeobj__474 __pyx_mstate_global->__pyx_codeobj__474
#define __pyx_codeobj__475 __pyx_mstate_global->__pyx_codeobj__475
#define __pyx_codeobj__477 __pyx_mstate_global->__pyx_codeobj__477
#define __pyx_codeobj__479 __pyx_mstate_global->__pyx_codeobj__479
#define __pyx_codeobj__480 __pyx_mstate_global->__pyx_codeobj__480
#define __pyx_codeobj__482 __pyx_mstate_global->__pyx_codeobj__482
#define __pyx_codeobj__483 __pyx_mstate_global->__pyx_codeobj__483
#define __pyx_codeobj__484 __pyx_mstate_global->__pyx_codeobj__484
#define __pyx_codeobj__486 __pyx_mstate_global->__pyx_codeobj__486
#define __pyx_codeobj__488 __pyx_mstate_global->__pyx_codeobj__488
#define __pyx_codeobj__489 __pyx_mstate_global->__pyx_codeobj__489
#define __pyx_codeobj__491 __pyx_mstate_global->__pyx_codeobj__491
#define __pyx_codeobj__492 __pyx_mstate_global->__pyx_codeobj__492
#define __pyx_codeobj__493 __pyx_mstate_global->__pyx_codeobj__493
#define __pyx_codeobj__494 __pyx_mstate_global->__pyx_codeobj__494
#define __pyx_codeobj__496 __pyx_mstate_global->__pyx_codeobj__496
#define __pyx_codeobj__497 __pyx_mstate_global->__pyx_codeobj__497
#define __pyx_codeobj__499 __pyx_mstate_global->__pyx_codeobj__499
#define __pyx_codeobj__500 __pyx_mstate_global->__pyx_codeobj__500
#define __pyx_codeobj__502 __pyx_mstate_global->__pyx_codeobj__502
#define __pyx_codeobj__504 __pyx_mstate_global->__pyx_codeobj__504
#define __pyx_codeobj__506 __pyx_mstate_global->__pyx_codeobj__506
#define __pyx_codeobj__507 __pyx_mstate_global->__pyx_codeobj__507
#define __pyx_codeobj__509 __pyx_mstate_global->__pyx_codeobj__509
#define __pyx_codeobj__510 __pyx_mstate_global->__pyx_codeobj__510
#define __pyx_codeobj__511 __pyx_mstate_global->__pyx_codeobj__511
#define __pyx_codeobj__513 __pyx_mstate_global->__pyx_codeobj__513
#define __pyx_codeobj__515 __pyx_mstate_global->__pyx_codeobj__515
#define __pyx_codeobj__516 __pyx_mstate_global->__pyx_codeobj__516
#define __pyx_codeobj__518 __pyx_mstate_global->__pyx_codeobj__518
#define __pyx_codeobj__519 __pyx_mstate_global->__pyx_codeobj__519
#define __pyx_codeobj__520 __pyx_mstate_global->__pyx_codeobj__520
#define __pyx_codeobj__522 __pyx_mstate_global->__pyx_codeobj__522
#define __pyx_codeobj__524 __pyx_mstate_global->__pyx_codeobj__524
#define __pyx_codeobj__525 __pyx_mstate_global->__pyx_codeobj__525
#define __pyx_codeobj__527 __pyx_mstate_global->__pyx_codeobj__527
#define __pyx_codeobj__529 __pyx_mstate_global->__pyx_codeobj__529
#define __pyx_codeobj__531 __pyx_mstate_global->__pyx_codeobj__531
#define __pyx_codeobj__532 __pyx_mstate_global->__pyx_codeobj__532
#define __pyx_codeobj__534 __pyx_mstate_global->__pyx_codeobj__534
#define __pyx_codeobj__536 __pyx_mstate_global->__pyx_codeobj__536
#define __pyx_codeobj__538 __pyx_mstate_global->__pyx_codeobj__538
#define __pyx_codeobj__540 __pyx_mstate_global->__pyx_codeobj__540
#define __pyx_codeobj__542 __pyx_mstate_global->__pyx_codeobj__542
#define __pyx_codeobj__543 __pyx_mstate_global->__pyx_codeobj__543
#define __pyx_codeobj__545 __pyx_mstate_global->__pyx_codeobj__545
#define __pyx_codeobj__546 __pyx_mstate_global->__pyx_codeobj__546
#define __pyx_codeobj__547 __pyx_mstate_global->__pyx_codeobj__547
#define __pyx_codeobj__549 __pyx_mstate_global->__pyx_codeobj__549
#define __pyx_codeobj__551 __pyx_mstate_global->__pyx_codeobj__551
#define __pyx_codeobj__552 __pyx_mstate_global->__pyx_codeobj__552
#define __pyx_codeobj__554 __pyx_mstate_global->__pyx_codeobj__554
#define __pyx_codeobj__555 __pyx_mstate_global->__pyx_codeobj__555
#define __pyx_codeobj__557 __pyx_mstate_global->__pyx_codeobj__557
#define __pyx_codeobj__559 __pyx_mstate_global->__pyx_codeobj__559
#define __pyx_codeobj__561 __pyx_mstate_global->__pyx_codeobj__561
#define __pyx_codeobj__562 __pyx_mstate_global->__pyx_codeobj__562
#define __pyx_codeobj__564 __pyx_mstate_global->__pyx_codeobj__564
#define __pyx_codeobj__565 __pyx_mstate_global->__pyx_codeobj__565
#define __pyx_codeobj__567 __pyx_mstate_global->__pyx_codeobj__567
#define __pyx_codeobj__568 __pyx_mstate_global->__pyx_codeobj__568
#define __pyx_codeobj__570 __pyx_mstate_global->__pyx_codeobj__570
#define __pyx_codeobj__571 __pyx_mstate_global->__pyx_codeobj__571
#define __pyx_codeobj__573 __pyx_mstate_global->__pyx_codeobj__573
#define __pyx_codeobj__574 __pyx_mstate_global->__pyx_codeobj__574
#define __pyx_codeobj__576 __pyx_mstate_global->__pyx_codeobj__576
#define __pyx_codeobj__578 __pyx_mstate_global->__pyx_codeobj__578
#define __pyx_codeobj__580 __pyx_mstate_global->__pyx_codeobj__580
#define __pyx_codeobj__581 __pyx_mstate_global->__pyx_codeobj__581
#define __pyx_codeobj__583 __pyx_mstate_global->__pyx_codeobj__583
#define __pyx_codeobj__584 __pyx_mstate_global->__pyx_codeobj__584
#define __pyx_codeobj__585 __pyx_mstate_global->__pyx_codeobj__585
#define __pyx_codeobj__587 __pyx_mstate_global->__pyx_codeobj__587
#define __pyx_codeobj__589 __pyx_mstate_global->__pyx_codeobj__589
#define __pyx_codeobj__590 __pyx_mstate_global->__pyx_codeobj__590
#define __pyx_codeobj__592 __pyx_mstate_global->__pyx_codeobj__592
#define __pyx_codeobj__593 __pyx_mstate_global->__pyx_codeobj__593
#define __pyx_codeobj__595 __pyx_mstate_global->__pyx_codeobj__595
#define __pyx_codeobj__597 __pyx_mstate_global->__pyx_codeobj__597
#define __pyx_codeobj__599 __pyx_mstate_global->__pyx_codeobj__599
#define __pyx_codeobj__600 __pyx_mstate_global->__pyx_codeobj__600
#define __pyx_codeobj__602 __pyx_mstate_global->__pyx_codeobj__602
#define __pyx_codeobj__603 __pyx_mstate_global->__pyx_codeobj__603
#define __pyx_codeobj__604 __pyx_mstate_global->__pyx_codeobj__604
#define __pyx_codeobj__605 __pyx_mstate_global->__pyx_codeobj__605
#define __pyx_codeobj__607 __pyx_mstate_global->__pyx_codeobj__607
#define __pyx_codeobj__608 __pyx_mstate_global->__pyx_codeobj__608
#define __pyx_codeobj__610 __pyx_mstate_global->__pyx_codeobj__610
#define __pyx_codeobj__611 __pyx_mstate_global->__pyx_codeobj__611
#define __pyx_codeobj__613 __pyx_mstate_global->__pyx_codeobj__613
#define __pyx_codeobj__615 __pyx_mstate_global->__pyx_codeobj__615
#define __pyx_codeobj__617 __pyx_mstate_global->__pyx_codeobj__617
#define __pyx_codeobj__618 __pyx_mstate_global->__pyx_codeobj__618
#define __pyx_codeobj__620 __pyx_mstate_global->__pyx_codeobj__620
#define __pyx_codeobj__621 __pyx_mstate_global->__pyx_codeobj__621
#define __pyx_codeobj__622 __pyx_mstate_global->__pyx_codeobj__622
#define __pyx_codeobj__624 __pyx_mstate_global->__pyx_codeobj__624
#define __pyx_codeobj__626 __pyx_mstate_global->__pyx_codeobj__626
#define __pyx_codeobj__627 __pyx_mstate_global->__pyx_codeobj__627
#define __pyx_codeobj__630 __pyx_mstate_global->__pyx_codeobj__630
#define __pyx_codeobj__631 __pyx_mstate_global->__pyx_codeobj__631
#define __pyx_codeobj__632 __pyx_mstate_global->__pyx_codeobj__632
#define __pyx_codeobj__633 __pyx_mstate_global->__pyx_codeobj__633
#define __pyx_codeobj__634 __pyx_mstate_global->__pyx_codeobj__634
#define __pyx_codeobj__636 __pyx_mstate_global->__pyx_codeobj__636
#define __pyx_codeobj__637 __pyx_mstate_global->__pyx_codeobj__637
#define __pyx_codeobj__639 __pyx_mstate_global->__pyx_codeobj__639
#define __pyx_codeobj__640 __pyx_mstate_global->__pyx_codeobj__640
#define __pyx_codeobj__642 __pyx_mstate_global->__pyx_codeobj__642
#define __pyx_codeobj__644 __pyx_mstate_global->__pyx_codeobj__644
#define __pyx_codeobj__646 __pyx_mstate_global->__pyx_codeobj__646
#define __pyx_codeobj__647 __pyx_mstate_global->__pyx_codeobj__647
#define __pyx_codeobj__649 __pyx_mstate_global->__pyx_codeobj__649
#define __pyx_codeobj__650 __pyx_mstate_global->__pyx_codeobj__650
#define __pyx_codeobj__651 __pyx_mstate_global->__pyx_codeobj__651
#define __pyx_codeobj__652 __pyx_mstate_global->__pyx_codeobj__652
#define __pyx_codeobj__653 __pyx_mstate_global->__pyx_codeobj__653
#define __pyx_codeobj__655 __pyx_mstate_global->__pyx_codeobj__655
#define __pyx_codeobj__656 __pyx_mstate_global->__pyx_codeobj__656
#define __pyx_codeobj__658 __pyx_mstate_global->__pyx_codeobj__658
#define __pyx_codeobj__659 __pyx_mstate_global->__pyx_codeobj__659
#define __pyx_codeobj__660 __pyx_mstate_global->__pyx_codeobj__660
#define __pyx_codeobj__661 __pyx_mstate_global->__pyx_codeobj__661
#define __pyx_codeobj__663 __pyx_mstate_global->__pyx_codeobj__663
#define __pyx_codeobj__665 __pyx_mstate_global->__pyx_codeobj__665
#define __pyx_codeobj__666 __pyx_mstate_global->__pyx_codeobj__666
#define __pyx_codeobj__668 __pyx_mstate_global->__pyx_codeobj__668
#define __pyx_codeobj__669 __pyx_mstate_global->__pyx_codeobj__669
#define __pyx_codeobj__671 __pyx_mstate_global->__pyx_codeobj__671
#define __pyx_codeobj__673 __pyx_mstate_global->__pyx_codeobj__673
#define __pyx_codeobj__675 __pyx_mstate_global->__pyx_codeobj__675
#define __pyx_codeobj__676 __pyx_mstate_global->__pyx_codeobj__676
#define __pyx_codeobj__678 __pyx_mstate_global->__pyx_codeobj__678
#define __pyx_codeobj__679 __pyx_mstate_global->__pyx_codeobj__679
#define __pyx_codeobj__680 __pyx_mstate_global->__pyx_codeobj__680
#define __pyx_codeobj__682 __pyx_mstate_global->__pyx_codeobj__682
#define __pyx_codeobj__684 __pyx_mstate_global->__pyx_codeobj__684
#define __pyx_codeobj__685 __pyx_mstate_global->__pyx_codeobj__685
#define __pyx_codeobj__687 __pyx_mstate_global->__pyx_codeobj__687
#define __pyx_codeobj__688 __pyx_mstate_global->__pyx_codeobj__688
#define __pyx_codeobj__689 __pyx_mstate_global->__pyx_codeobj__689
#define __pyx_codeobj__691 __pyx_mstate_global->__pyx_codeobj__691
#define __pyx_codeobj__693 __pyx_mstate_global->__pyx_codeobj__693
#define __pyx_codeobj__694 __pyx_mstate_global->__pyx_codeobj__694
#define __pyx_codeobj__696 __pyx_mstate_global->__pyx_codeobj__696
#define __pyx_codeobj__697 __pyx_mstate_global->__pyx_codeobj__697
#define __pyx_codeobj__699 __pyx_mstate_global->__pyx_codeobj__699
#define __pyx_codeobj__701 __pyx_mstate_global->__pyx_codeobj__701
#define __pyx_codeobj__703 __pyx_mstate_global->__pyx_codeobj__703
#define __pyx_codeobj__705 __pyx_mstate_global->__pyx_codeobj__705
#define __pyx_codeobj__706 __pyx_mstate_global->__pyx_codeobj__706
#define __pyx_codeobj__707 __pyx_mstate_global->__pyx_codeobj__707
#define __pyx_codeobj__709 __pyx_mstate_global->__pyx_codeobj__709
#define __pyx_codeobj__710 __pyx_mstate_global->__pyx_codeobj__710
#define __pyx_codeobj__712 __pyx_mstate_global->__pyx_codeobj__712
#define __pyx_codeobj__714 __pyx_mstate_global->__pyx_codeobj__714
#define __pyx_codeobj__716 __pyx_mstate_global->__pyx_codeobj__716
#define __pyx_codeobj__718 __pyx_mstate_global->__pyx_codeobj__718
#define __pyx_codeobj__719 __pyx_mstate_global->__pyx_codeobj__719
#define __pyx_codeobj__720 __pyx_mstate_global->__pyx_codeobj__720
#define __pyx_codeobj__722 __pyx_mstate_global->__pyx_codeobj__722
#define __pyx_codeobj__723 __pyx_mstate_global->__pyx_codeobj__723
#define __pyx_codeobj__725 __pyx_mstate_global->__pyx_codeobj__725
#define __pyx_codeobj__726 __pyx_mstate_global->__pyx_codeobj__726
#define __pyx_codeobj__727 __pyx_mstate_global->__pyx_codeobj__727
#define __pyx_codeobj__729 __pyx_mstate_global->__pyx_codeobj__729
#define __pyx_codeobj__731 __pyx_mstate_global->__pyx_codeobj__731
#define __pyx_codeobj__732 __pyx_mstate_global->__pyx_codeobj__732
#define __pyx_codeobj__734 __pyx_mstate_global->__pyx_codeobj__734
#define __pyx_codeobj__735 __pyx_mstate_global->__pyx_codeobj__735
#define __pyx_codeobj__736 __pyx_mstate_global->__pyx_codeobj__736
#define __pyx_codeobj__737 __pyx_mstate_global->__pyx_codeobj__737
#define __pyx_codeobj__739 __pyx_mstate_global->__pyx_codeobj__739
#define __pyx_codeobj__740 __pyx_mstate_global->__pyx_codeobj__740
#define __pyx_codeobj__742 __pyx_mstate_global->__pyx_codeobj__742
#define __pyx_codeobj__743 __pyx_mstate_global->__pyx_codeobj__743
#define __pyx_codeobj__745 __pyx_mstate_global->__pyx_codeobj__745
#define __pyx_codeobj__747 __pyx_mstate_global->__pyx_codeobj__747
#define __pyx_codeobj__749 __pyx_mstate_global->__pyx_codeobj__749
#define __pyx_codeobj__750 __pyx_mstate_global->__pyx_codeobj__750
#define __pyx_codeobj__752 __pyx_mstate_global->__pyx_codeobj__752
#define __pyx_codeobj__753 __pyx_mstate_global->__pyx_codeobj__753
#define __pyx_codeobj__755 __pyx_mstate_global->__pyx_codeobj__755
#define __pyx_codeobj__757 __pyx_mstate_global->__pyx_codeobj__757
#define __pyx_codeobj__759 __pyx_mstate_global->__pyx_codeobj__759
#define __pyx_codeobj__760 __pyx_mstate_global->__pyx_codeobj__760
#define __pyx_codeobj__762 __pyx_mstate_global->__pyx_codeobj__762
#define __pyx_codeobj__763 __pyx_mstate_global->__pyx_codeobj__763
#define __pyx_codeobj__765 __pyx_mstate_global->__pyx_codeobj__765
#define __pyx_codeobj__766 __pyx_mstate_global->__pyx_codeobj__766
#define __pyx_codeobj__768 __pyx_mstate_global->__pyx_codeobj__768
#define __pyx_codeobj__769 __pyx_mstate_global->__pyx_codeobj__769
#define __pyx_codeobj__771 __pyx_mstate_global->__pyx_codeobj__771
#define __pyx_codeobj__772 __pyx_mstate_global->__pyx_codeobj__772
#define __pyx_codeobj__773 __pyx_mstate_global->__pyx_codeobj__773
#define __pyx_codeobj__774 __pyx_mstate_global->__pyx_codeobj__774
#define __pyx_codeobj__776 __pyx_mstate_global->__pyx_codeobj__776
#define __pyx_codeobj__778 __pyx_mstate_global->__pyx_codeobj__778
#define __pyx_codeobj__780 __pyx_mstate_global->__pyx_codeobj__780
#define __pyx_codeobj__781 __pyx_mstate_global->__pyx_codeobj__781
#define __pyx_codeobj__782 __pyx_mstate_global->__pyx_codeobj__782
#define __pyx_codeobj__785 __pyx_mstate_global->__pyx_codeobj__785
#define __pyx_codeobj__787 __pyx_mstate_global->__pyx_codeobj__787
#define __pyx_codeobj__788 __pyx_mstate_global->__pyx_codeobj__788
#define __pyx_codeobj__790 __pyx_mstate_global->__pyx_codeobj__790
#define __pyx_codeobj__791 __pyx_mstate_global->__pyx_codeobj__791
#define __pyx_codeobj__792 __pyx_mstate_global->__pyx_codeobj__792
#define __pyx_codeobj__793 __pyx_mstate_global->__pyx_codeobj__793
#define __pyx_codeobj__795 __pyx_mstate_global->__pyx_codeobj__795
#define __pyx_codeobj__796 __pyx_mstate_global->__pyx_codeobj__796
#define __pyx_codeobj__798 __pyx_mstate_global->__pyx_codeobj__798
#define __pyx_codeobj__799 __pyx_mstate_global->__pyx_codeobj__799
#define __pyx_codeobj__800 __pyx_mstate_global->__pyx_codeobj__800
#define __pyx_codeobj__801 __pyx_mstate_global->__pyx_codeobj__801
#define __pyx_codeobj__803 __pyx_mstate_global->__pyx_codeobj__803
#define __pyx_codeobj__804 __pyx_mstate_global->__pyx_codeobj__804
#define __pyx_codeobj__805 __pyx_mstate_global->__pyx_codeobj__805
#define __pyx_codeobj__806 __pyx_mstate_global->__pyx_codeobj__806
#define __pyx_codeobj__807 __pyx_mstate_global->__pyx_codeobj__807
#define __pyx_codeobj__809 __pyx_mstate_global->__pyx_codeobj__809
#define __pyx_codeobj__810 __pyx_mstate_global->__pyx_codeobj__810
#define __pyx_codeobj__812 __pyx_mstate_global->__pyx_codeobj__812
#define __pyx_codeobj__813 __pyx_mstate_global->__pyx_codeobj__813
#define __pyx_codeobj__814 __pyx_mstate_global->__pyx_codeobj__814
#define __pyx_codeobj__815 __pyx_mstate_global->__pyx_codeobj__815
#define __pyx_codeobj__817 __pyx_mstate_global->__pyx_codeobj__817
#define __pyx_codeobj__818 __pyx_mstate_global->__pyx_codeobj__818
#define __pyx_codeobj__820 __pyx_mstate_global->__pyx_codeobj__820
#define __pyx_codeobj__821 __pyx_mstate_global->__pyx_codeobj__821
#define __pyx_codeobj__822 __pyx_mstate_global->__pyx_codeobj__822
#define __pyx_codeobj__823 __pyx_mstate_global->__pyx_codeobj__823
#define __pyx_codeobj__825 __pyx_mstate_global->__pyx_codeobj__825
#define __pyx_codeobj__827 __pyx_mstate_global->__pyx_codeobj__827
#define __pyx_codeobj__828 __pyx_mstate_global->__pyx_codeobj__828
#define __pyx_codeobj__830 __pyx_mstate_global->__pyx_codeobj__830
#define __pyx_codeobj__831 __pyx_mstate_global->__pyx_codeobj__831
#define __pyx_codeobj__832 __pyx_mstate_global->__pyx_codeobj__832
#define __pyx_codeobj__833 __pyx_mstate_global->__pyx_codeobj__833
#define __pyx_codeobj__835 __pyx_mstate_global->__pyx_codeobj__835
#define __pyx_codeobj__836 __pyx_mstate_global->__pyx_codeobj__836
#define __pyx_codeobj__837 __pyx_mstate_global->__pyx_codeobj__837
#define __pyx_codeobj__839 __pyx_mstate_global->__pyx_codeobj__839
#define __pyx_codeobj__841 __pyx_mstate_global->__pyx_codeobj__841
#define __pyx_codeobj__843 __pyx_mstate_global->__pyx_codeobj__843
#define __pyx_codeobj__846 __pyx_mstate_global->__pyx_codeobj__846
#define __pyx_codeobj__847 __pyx_mstate_global->__pyx_codeobj__847
#define __pyx_codeobj__848 __pyx_mstate_global->__pyx_codeobj__848
#define __pyx_codeobj__850 __pyx_mstate_global->__pyx_codeobj__850
#define __pyx_codeobj__852 __pyx_mstate_global->__pyx_codeobj__852
#define __pyx_codeobj__853 __pyx_mstate_global->__pyx_codeobj__853
#define __pyx_codeobj__855 __pyx_mstate_global->__pyx_codeobj__855
#define __pyx_codeobj__856 __pyx_mstate_global->__pyx_codeobj__856
#define __pyx_codeobj__857 __pyx_mstate_global->__pyx_codeobj__857
#define __pyx_codeobj__858 __pyx_mstate_global->__pyx_codeobj__858
#define __pyx_codeobj__859 __pyx_mstate_global->__pyx_codeobj__859
#define __pyx_codeobj__860 __pyx_mstate_global->__pyx_codeobj__860
#define __pyx_codeobj__861 __pyx_mstate_global->__pyx_codeobj__861
#define __pyx_codeobj__862 __pyx_mstate_global->__pyx_codeobj__862
#define __pyx_codeobj__863 __pyx_mstate_global->__pyx_codeobj__863
#define __pyx_codeobj__864 __pyx_mstate_global->__pyx_codeobj__864
#define __pyx_codeobj__865 __pyx_mstate_global->__pyx_codeobj__865
#define __pyx_codeobj__866 __pyx_mstate_global->__pyx_codeobj__866
#define __pyx_codeobj__867 __pyx_mstate_global->__pyx_codeobj__867
#define __pyx_codeobj__868 __pyx_mstate_global->__pyx_codeobj__868
#define __pyx_codeobj__869 __pyx_mstate_global->__pyx_codeobj__869
#define __pyx_codeobj__870 __pyx_mstate_global->__pyx_codeobj__870
#define __pyx_codeobj__871 __pyx_mstate_global->__pyx_codeobj__871
#define __pyx_codeobj__872 __pyx_mstate_global->__pyx_codeobj__872
#define __pyx_codeobj__873 __pyx_mstate_global->__pyx_codeobj__873
#define __pyx_codeobj__874 __pyx_mstate_global->__pyx_codeobj__874
#define __pyx_codeobj__875 __pyx_mstate_global->__pyx_codeobj__875
#define __pyx_codeobj__876 __pyx_mstate_global->__pyx_codeobj__876
#define __pyx_codeobj__877 __pyx_mstate_global->__pyx_codeobj__877
#define __pyx_codeobj__878 __pyx_mstate_global->__pyx_codeobj__878
#define __pyx_codeobj__879 __pyx_mstate_global->__pyx_codeobj__879
#define __pyx_codeobj__880 __pyx_mstate_global->__pyx_codeobj__880
#define __pyx_codeobj__881 __pyx_mstate_global->__pyx_codeobj__881
#define __pyx_codeobj__882 __pyx_mstate_global->__pyx_codeobj__882
#define __pyx_codeobj__883 __pyx_mstate_global->__pyx_codeobj__883
#define __pyx_codeobj__884 __pyx_mstate_global->__pyx_codeobj__884
#define __pyx_codeobj__885 __pyx_mstate_global->__pyx_codeobj__885
#define __pyx_codeobj__886 __pyx_mstate_global->__pyx_codeobj__886
#define __pyx_codeobj__887 __pyx_mstate_global->__pyx_codeobj__887
#define __pyx_codeobj__888 __pyx_mstate_global->__pyx_codeobj__888
#define __pyx_codeobj__889 __pyx_mstate_global->__pyx_codeobj__889
#define __pyx_codeobj__890 __pyx_mstate_global->__pyx_codeobj__890
#define __pyx_codeobj__891 __pyx_mstate_global->__pyx_codeobj__891
#define __pyx_codeobj__892 __pyx_mstate_global->__pyx_codeobj__892
#define __pyx_codeobj__893 __pyx_mstate_global->__pyx_codeobj__893
#define __pyx_codeobj__894 __pyx_mstate_global->__pyx_codeobj__894
#define __pyx_codeobj__895 __pyx_mstate_global->__pyx_codeobj__895
#define __pyx_codeobj__896 __pyx_mstate_global->__pyx_codeobj__896
#define __pyx_codeobj__897 __pyx_mstate_global->__pyx_codeobj__897
#define __pyx_codeobj__898 __pyx_mstate_global->__pyx_codeobj__898
#define __pyx_codeobj__899 __pyx_mstate_global->__pyx_codeobj__899
#define __pyx_codeobj__900 __pyx_mstate_global->__pyx_codeobj__900
#define __pyx_codeobj__901 __pyx_mstate_global->__pyx_codeobj__901
#define __pyx_codeobj__902 __pyx_mstate_global->__pyx_codeobj__902
#define __pyx_codeobj__903 __pyx_mstate_global->__pyx_codeobj__903
#define __pyx_codeobj__904 __pyx_mstate_global->__pyx_codeobj__904
#define __pyx_codeobj__905 __pyx_mstate_global->__pyx_codeobj__905
#define __pyx_codeobj__906 __pyx_mstate_global->__pyx_codeobj__906
#define __pyx_codeobj__907 __pyx_mstate_global->__pyx_codeobj__907
#define __pyx_codeobj__908 __pyx_mstate_global->__pyx_codeobj__908
#define __pyx_codeobj__909 __pyx_mstate_global->__pyx_codeobj__909
#define __pyx_codeobj__910 __pyx_mstate_global->__pyx_codeobj__910
#define __pyx_codeobj__911 __pyx_mstate_global->__pyx_codeobj__911
#define __pyx_codeobj__912 __pyx_mstate_global->__pyx_codeobj__912
#define __pyx_codeobj__913 __pyx_mstate_global->__pyx_codeobj__913
#define __pyx_codeobj__914 __pyx_mstate_global->__pyx_codeobj__914
#define __pyx_codeobj__915 __pyx_mstate_global->__pyx_codeobj__915
#define __pyx_codeobj__916 __pyx_mstate_global->__pyx_codeobj__916
#define __pyx_codeobj__917 __pyx_mstate_global->__pyx_codeobj__917
#define __pyx_codeobj__918 __pyx_mstate_global->__pyx_codeobj__918
#define __pyx_codeobj__919 __pyx_mstate_global->__pyx_codeobj__919
#define __pyx_codeobj__920 __pyx_mstate_global->__pyx_codeobj__920
#define __pyx_codeobj__921 __pyx_mstate_global->__pyx_codeobj__921
#define __pyx_codeobj__922 __pyx_mstate_global->__pyx_codeobj__922
#define __pyx_codeobj__923 __pyx_mstate_global->__pyx_codeobj__923
#define __pyx_codeobj__924 __pyx_mstate_global->__pyx_codeobj__924
#define __pyx_codeobj__925 __pyx_mstate_global->__pyx_codeobj__925
#define __pyx_codeobj__926 __pyx_mstate_global->__pyx_codeobj__926
#define __pyx_codeobj__927 __pyx_mstate_global->__pyx_codeobj__927
#define __pyx_codeobj__928 __pyx_mstate_global->__pyx_codeobj__928
#define __pyx_codeobj__929 __pyx_mstate_global->__pyx_codeobj__929
#define __pyx_codeobj__930 __pyx_mstate_global->__pyx_codeobj__930
#define __pyx_codeobj__931 __pyx_mstate_global->__pyx_codeobj__931
#define __pyx_codeobj__932 __pyx_mstate_global->__pyx_codeobj__932
#define __pyx_codeobj__933 __pyx_mstate_global->__pyx_codeobj__933
#define __pyx_codeobj__934 __pyx_mstate_global->__pyx_codeobj__934
/* #### Code section: module_code ### */

/* "EnumTypeToPy":132
 * 
 * @cname("__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py")
 * cdef __Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(Polynomial c_val):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_enum
 * 
 */

static PyObject *__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(enum __pyx_t_8pysndlib_3clm_Polynomial __pyx_v_c_val) {
  PyObject *__pyx_v___pyx_enum = 0;
  PyObject *__pyx_v_warnings = NULL;
  int __pyx_v_underlying_c_val;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py", 1);

  /* "EnumTypeToPy":137
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         from pysndlib.clm import Polynomial as __pyx_enum
 *     except ImportError:
 */
  {
    __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:*/ {

      /* "EnumTypeToPy":138
 * 
 *     try:
 *         from pysndlib.clm import Polynomial as __pyx_enum             # <<<<<<<<<<<<<<
 *     except ImportError:
 *         import warnings
 */
      __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 138, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_n_s_Polynomial);
      __Pyx_GIVEREF(__pyx_n_s_Polynomial);
      if (__Pyx_PyList_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_Polynomial)) __PYX_ERR(1, 138, __pyx_L3_error);
      __pyx_t_5 = __Pyx_Import(__pyx_n_s_pysndlib_clm, __pyx_t_4, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 138, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_Polynomial); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 138, __pyx_L3_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v___pyx_enum = __pyx_t_4;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

      /* "EnumTypeToPy":137
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         from pysndlib.clm import Polynomial as __pyx_enum
 *     except ImportError:
 */
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L8_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "EnumTypeToPy":139
 *     try:
 *         from pysndlib.clm import Polynomial as __pyx_enum
 *     except ImportError:             # <<<<<<<<<<<<<<
 *         import warnings
 *         warnings.warn(
 */
    __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError);
    if (__pyx_t_6) {
      __Pyx_AddTraceback("EnumTypeToPy.__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(1, 139, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_4);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "EnumTypeToPy":140
 *         from pysndlib.clm import Polynomial as __pyx_enum
 *     except ImportError:
 *         import warnings             # <<<<<<<<<<<<<<
 *         warnings.warn(
 *             f"enum class Polynomial not importable from pysndlib.clm. "
 */
      __pyx_t_8 = __Pyx_ImportDottedModule(__pyx_n_s_warnings, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 140, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_v_warnings = __pyx_t_8;
      __pyx_t_8 = 0;

      /* "EnumTypeToPy":141
 *     except ImportError:
 *         import warnings
 *         warnings.warn(             # <<<<<<<<<<<<<<
 *             f"enum class Polynomial not importable from pysndlib.clm. "
 *             "You are probably using a cpdef enum declared in a .pxd file that "
 */
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s_warn); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 141, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_kp_u_enum_class_Polynomial_not_import};
        __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 141, __pyx_L5_except_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "EnumTypeToPy":145
 *             "You are probably using a cpdef enum declared in a .pxd file that "
 *             "does not have a .py  or .pyx file.")
 *         return <int>c_val             # <<<<<<<<<<<<<<
 * 
 *     if 0:
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_8 = __Pyx_PyInt_From_int(((int)__pyx_v_c_val)); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 145, __pyx_L5_except_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_r = __pyx_t_8;
      __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L6_except_return;
    }
    goto __pyx_L5_except_error;

    /* "EnumTypeToPy":137
 * 
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         from pysndlib.clm import Polynomial as __pyx_enum
 *     except ImportError:
 */
    __pyx_L5_except_error:;
    __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_L6_except_return:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L0;
    __pyx_L8_try_end:;
  }

  /* "EnumTypeToPy":147
 *         return <int>c_val
 * 
 *     if 0:             # <<<<<<<<<<<<<<
 *         pass
 *     elif c_val == Polynomial.EITHER_KIND:
 */
  switch (__pyx_v_c_val) {
    case __pyx_e_8pysndlib_3clm_EITHER_KIND:

    /* "EnumTypeToPy":150
 *         pass
 *     elif c_val == Polynomial.EITHER_KIND:
 *         return __pyx_enum.EITHER_KIND             # <<<<<<<<<<<<<<
 *     elif c_val == Polynomial.FIRST_KIND:
 *         return __pyx_enum.FIRST_KIND
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v___pyx_enum, __pyx_n_s_EITHER_KIND); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "EnumTypeToPy":149
 *     if 0:
 *         pass
 *     elif c_val == Polynomial.EITHER_KIND:             # <<<<<<<<<<<<<<
 *         return __pyx_enum.EITHER_KIND
 *     elif c_val == Polynomial.FIRST_KIND:
 */
    break;
    case __pyx_e_8pysndlib_3clm_FIRST_KIND:

    /* "EnumTypeToPy":152
 *         return __pyx_enum.EITHER_KIND
 *     elif c_val == Polynomial.FIRST_KIND:
 *         return __pyx_enum.FIRST_KIND             # <<<<<<<<<<<<<<
 *     elif c_val == Polynomial.SECOND_KIND:
 *         return __pyx_enum.SECOND_KIND
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v___pyx_enum, __pyx_n_s_FIRST_KIND); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "EnumTypeToPy":151
 *     elif c_val == Polynomial.EITHER_KIND:
 *         return __pyx_enum.EITHER_KIND
 *     elif c_val == Polynomial.FIRST_KIND:             # <<<<<<<<<<<<<<
 *         return __pyx_enum.FIRST_KIND
 *     elif c_val == Polynomial.SECOND_KIND:
 */
    break;
    case __pyx_e_8pysndlib_3clm_SECOND_KIND:

    /* "EnumTypeToPy":154
 *         return __pyx_enum.FIRST_KIND
 *     elif c_val == Polynomial.SECOND_KIND:
 *         return __pyx_enum.SECOND_KIND             # <<<<<<<<<<<<<<
 *     elif c_val == Polynomial.BOTH_KINDS:
 *         return __pyx_enum.BOTH_KINDS
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v___pyx_enum, __pyx_n_s_SECOND_KIND); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "EnumTypeToPy":153
 *     elif c_val == Polynomial.FIRST_KIND:
 *         return __pyx_enum.FIRST_KIND
 *     elif c_val == Polynomial.SECOND_KIND:             # <<<<<<<<<<<<<<
 *         return __pyx_enum.SECOND_KIND
 *     elif c_val == Polynomial.BOTH_KINDS:
 */
    break;
    case __pyx_e_8pysndlib_3clm_BOTH_KINDS:

    /* "EnumTypeToPy":156
 *         return __pyx_enum.SECOND_KIND
 *     elif c_val == Polynomial.BOTH_KINDS:
 *         return __pyx_enum.BOTH_KINDS             # <<<<<<<<<<<<<<
 *     else:
 *         underlying_c_val = <int>c_val
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v___pyx_enum, __pyx_n_s_BOTH_KINDS); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "EnumTypeToPy":155
 *     elif c_val == Polynomial.SECOND_KIND:
 *         return __pyx_enum.SECOND_KIND
 *     elif c_val == Polynomial.BOTH_KINDS:             # <<<<<<<<<<<<<<
 *         return __pyx_enum.BOTH_KINDS
 *     else:
 */
    break;
    default:

    /* "EnumTypeToPy":158
 *         return __pyx_enum.BOTH_KINDS
 *     else:
 *         underlying_c_val = <int>c_val             # <<<<<<<<<<<<<<
 *         return __pyx_enum(underlying_c_val)
 * 
 */
    __pyx_v_underlying_c_val = ((int)__pyx_v_c_val);

    /* "EnumTypeToPy":159
 *     else:
 *         underlying_c_val = <int>c_val
 *         return __pyx_enum(underlying_c_val)             # <<<<<<<<<<<<<<
 * 
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_underlying_c_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v___pyx_enum);
    __pyx_t_5 = __pyx_v___pyx_enum; __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_4};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
    break;
  }

  /* "EnumTypeToPy":132
 * 
 * @cname("__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py")
 * cdef __Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(Polynomial c_val):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_enum
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("EnumTypeToPy.__Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_enum);
  __Pyx_XDECREF(__pyx_v_warnings);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):
 *     def wrap(object y):             # <<<<<<<<<<<<<<
 *         """wrap(y) -> float"""
 *         return f(y)
 */

/* Python wrapper */
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_wrap, "wrap(y) -> float");
static PyMethodDef __pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_1wrap = {"wrap", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_1wrap, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_wrap};
static PyObject *__pyx_pw_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_1wrap(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("wrap (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_y,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_y)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 67, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "wrap") < 0)) __PYX_ERR(1, 67, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_y = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("wrap", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 67, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_wrap(__pyx_self, __pyx_v_y);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_wrap(PyObject *__pyx_self, PyObject *__pyx_v_y) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *__pyx_cur_scope;
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *__pyx_outer_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("wrap", 1);
  __pyx_outer_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "cfunc.to_py":69
 *     def wrap(object y):
 *         """wrap(y) -> float"""
 *         return f(y)             # <<<<<<<<<<<<<<
 *     return wrap
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_f(__pyx_v_y); if (unlikely(__pyx_t_1 == ((double)-1.0) && PyErr_Occurred())) __PYX_ERR(1, 69, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):
 *     def wrap(object y):             # <<<<<<<<<<<<<<
 *         """wrap(y) -> float"""
 *         return f(y)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y.wrap", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):             # <<<<<<<<<<<<<<
 *     def wrap(object y):
 *         """wrap(y) -> float"""
 */

static PyObject *__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*__pyx_v_f)(PyObject *)) {
  struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *__pyx_cur_scope;
  PyObject *__pyx_v_wrap = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y", 0);
  __pyx_cur_scope = (struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(1, 66, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_f = __pyx_v_f;

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):
 *     def wrap(object y):             # <<<<<<<<<<<<<<
 *         """wrap(y) -> float"""
 *         return f(y)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_11cfunc_dot_to_py_64__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_1wrap, 0, __pyx_n_s_Pyx_CFunc_double__lParenobject, ((PyObject*)__pyx_cur_scope), __pyx_n_s_cfunc_to_py, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_wrap = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "cfunc.to_py":70
 *         """wrap(y) -> float"""
 *         return f(y)
 *     return wrap             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wrap);
  __pyx_r = __pyx_v_wrap;
  goto __pyx_L0;

  /* "cfunc.to_py":66
 * 
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):             # <<<<<<<<<<<<<<
 *     def wrap(object y):
 *         """wrap(y) -> float"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("cfunc.to_py.__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wrap);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":245
 * 
 *         @property
 *         cdef inline PyObject* base(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 */

static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
  PyObject *__pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":248
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 *             return PyArray_BASE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_BASE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":245
 * 
 *         @property
 *         cdef inline PyObject* base(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a borrowed reference to the object owning the data/memory.
 *             """
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":251
 * 
 *         @property
 *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
 *             """Returns an owned reference to the dtype of the array.
 *             """
 */

static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) {
  PyArray_Descr *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyArray_Descr *__pyx_t_1;
  __Pyx_RefNannySetupContext("descr", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":254
 *             """Returns an owned reference to the dtype of the array.
 *             """
 *             return <dtype>PyArray_DESCR(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
  __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
  __pyx_r = ((PyArray_Descr *)__pyx_t_1);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":251
 * 
 *         @property
 *         cdef inline dtype descr(self):             # <<<<<<<<<<<<<<
 *             """Returns an owned reference to the dtype of the array.
 *             """
 */

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":257
 * 
 *         @property
 *         cdef inline int ndim(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns the number of dimensions in the array.
 *             """
 */

static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
  int __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":260
 *             """Returns the number of dimensions in the array.
 *             """
 *             return PyArray_NDIM(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_NDIM(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":257
 * 
 *         @property
 *         cdef inline int ndim(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns the number of dimensions in the array.
 *             """
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":263
 * 
 *         @property
 *         cdef inline npy_intp *shape(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the dimensions/shape of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
  npy_intp *__pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":268
 *             Can return NULL for 0-dimensional arrays.
 *             """
 *             return PyArray_DIMS(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_DIMS(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":263
 * 
 *         @property
 *         cdef inline npy_intp *shape(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the dimensions/shape of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":271
 * 
 *         @property
 *         cdef inline npy_intp *strides(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the strides of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
  npy_intp *__pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":275
 *             The number of elements matches the number of dimensions of the array (ndim).
 *             """
 *             return PyArray_STRIDES(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_STRIDES(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":271
 * 
 *         @property
 *         cdef inline npy_intp *strides(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns a pointer to the strides of the array.
 *             The number of elements matches the number of dimensions of the array (ndim).
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":278
 * 
 *         @property
 *         cdef inline npy_intp size(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns the total size (in number of elements) of the array.
 *             """
 */

static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
  npy_intp __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":281
 *             """Returns the total size (in number of elements) of the array.
 *             """
 *             return PyArray_SIZE(self)             # <<<<<<<<<<<<<<
 * 
 *         @property
 */
  __pyx_r = PyArray_SIZE(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":278
 * 
 *         @property
 *         cdef inline npy_intp size(self) nogil:             # <<<<<<<<<<<<<<
 *             """Returns the total size (in number of elements) of the array.
 *             """
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":284
 * 
 *         @property
 *         cdef inline char* data(self) nogil:             # <<<<<<<<<<<<<<
 *             """The pointer to the data buffer as a char*.
 *             This is provided for legacy reasons to avoid direct struct field access.
 */

static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
  char *__pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290
 *             of `PyArray_DATA()` instead, which returns a 'void*'.
 *             """
 *             return PyArray_BYTES(self)             # <<<<<<<<<<<<<<
 * 
 *     ctypedef unsigned char      npy_bool
 */
  __pyx_r = PyArray_BYTES(__pyx_v_self);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":284
 * 
 *         @property
 *         cdef inline char* data(self) nogil:             # <<<<<<<<<<<<<<
 *             """The pointer to the data buffer as a char*.
 *             This is provided for legacy reasons to avoid direct struct field access.
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":773
 * 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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":774
 * 
 * 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, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":773
 * 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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":776
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":777
 * 
 * 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, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":776
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":779
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":780
 * 
 * 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, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":779
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":782
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":783
 * 
 * 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, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":782
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":785
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":786
 * 
 * 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, 786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":785
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":788
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":789
 * 
 * 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);
  if (__pyx_t_1) {

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":790
 * 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;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":789
 * 
 * cdef inline tuple PyDataType_SHAPE(dtype d):
 *     if PyDataType_HASSUBARRAY(d):             # <<<<<<<<<<<<<<
 *         return <tuple>d.subarray.shape
 *     else:
 */
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":792
 *         return <tuple>d.subarray.shape
 *     else:
 *         return ()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_empty_tuple);
    __pyx_r = __pyx_empty_tuple;
    goto __pyx_L0;
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":788
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":968
 *     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) {
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":969
 * 
 * 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);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":970
 * 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):
 */
  __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 970, __pyx_L1_error)

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":968
 *     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 */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":972
 *     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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":973
 * 
 * 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);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":974
 * 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);
  if (__pyx_t_1) {

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":975
 *     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;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":974
 * cdef inline object get_array_base(ndarray arr):
 *     base = PyArray_BASE(arr)
 *     if base is NULL:             # <<<<<<<<<<<<<<
 *         return None
 *     return <object>base
 */
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":976
 *     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;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":972
 *     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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":980
 * # 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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":981
 * # 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:*/ {

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":982
 * 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, 982, __pyx_L3_error)

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":981
 * # 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:;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":983
 *     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, 983, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":984
 *         __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__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 984, __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, 984, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":981
 * # Cython code.
 * cdef inline int import_array() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         __pyx_import_array()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __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:;
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":980
 * # 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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":986
 *         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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":987
 * 
 * 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:*/ {

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":988
 * 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, 988, __pyx_L3_error)

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":987
 * 
 * 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:;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":989
 *     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, 989, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":990
 *         _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__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 990, __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, 990, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":987
 * 
 * cdef inline int import_umath() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __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:;
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":986
 *         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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":992
 *         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", 1);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":993
 * 
 * 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:*/ {

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":994
 * 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, 994, __pyx_L3_error)

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":993
 * 
 * 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:;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":995
 *     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, 995, __pyx_L5_except_error)
      __Pyx_XGOTREF(__pyx_t_5);
      __Pyx_XGOTREF(__pyx_t_6);
      __Pyx_XGOTREF(__pyx_t_7);

      /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":996
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * 
 */
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 996, __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, 996, __pyx_L5_except_error)
    }
    goto __pyx_L5_except_error;

    /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":993
 * 
 * cdef inline int import_ufunc() except -1:
 *     try:             # <<<<<<<<<<<<<<
 *         _import_umath()
 *     except Exception:
 */
    __pyx_L5_except_error:;
    __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:;
  }

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":992
 *         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;
}

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":999
 * 
 * 
 * cdef inline bint is_timedelta64_object(object obj):             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.timedelta64)`
 */

static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1011
 *     bool
 *     """
 *     return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":999
 * 
 * 
 * cdef inline bint is_timedelta64_object(object obj):             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.timedelta64)`
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1014
 * 
 * 
 * cdef inline bint is_datetime64_object(object obj):             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.datetime64)`
 */

static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
  int __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1026
 *     bool
 *     """
 *     return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1014
 * 
 * 
 * cdef inline bint is_datetime64_object(object obj):             # <<<<<<<<<<<<<<
 *     """
 *     Cython equivalent of `isinstance(obj, np.datetime64)`
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029
 * 
 * 
 * cdef inline npy_datetime get_datetime64_value(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy datetime64 object
 */

static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
  npy_datetime __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1036
 *     also needed.  That can be found using `get_datetime64_unit`.
 *     """
 *     return (<PyDatetimeScalarObject*>obj).obval             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029
 * 
 * 
 * cdef inline npy_datetime get_datetime64_value(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy datetime64 object
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1039
 * 
 * 
 * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy timedelta64 object
 */

static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
  npy_timedelta __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1043
 *     returns the int64 value underlying scalar numpy timedelta64 object
 *     """
 *     return (<PyTimedeltaScalarObject*>obj).obval             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1039
 * 
 * 
 * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the int64 value underlying scalar numpy timedelta64 object
 */

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

/* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1046
 * 
 * 
 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the unit part of the dtype for a numpy datetime64 object.
 */

static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
  NPY_DATETIMEUNIT __pyx_r;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1050
 *     returns the unit part of the dtype for a numpy datetime64 object.
 *     """
 *     return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base             # <<<<<<<<<<<<<<
 */
  __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
  goto __pyx_L0;

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1046
 * 
 * 
 * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil:             # <<<<<<<<<<<<<<
 *     """
 *     returns the unit part of the dtype for a numpy datetime64 object.
 */

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

/* "pysndlib/generators.pyx":22
 * 
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_12CLMGenerator_next(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_12CLMGenerator_1next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":23
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         pass             # <<<<<<<<<<<<<<
 * 
 * # --------------- nssb ---------------- #
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.CLMGenerator.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":22
 * 
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_12CLMGenerator_1next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12CLMGenerator_1next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 22, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 22, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.CLMGenerator.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12CLMGenerator_next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_next(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_CLMGenerator->next(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 22, __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("pysndlib.generators.CLMGenerator.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12CLMGenerator_2__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_CLMGenerator); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_CLMGenerator); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.CLMGenerator.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.CLMGenerator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12CLMGenerator_4__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_12CLMGenerator_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_CLMGenerator__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.CLMGenerator.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":28
 * cdef class Nssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Nssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Nssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 28, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 28, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb___init__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_4Nssb___init__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":29
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 29, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":30
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 30, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":31
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 31, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":32
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":28
 * cdef class Nssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":34
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Nssb_next(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Nssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Nssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":35
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         cdef cython.double cx  = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx  = cx * self.ratio
 *         cdef cython.double den  = sin(.5 * mx)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":36
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double den  = sin(.5 * mx)
 *         cdef cython.double n  = self.n
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":37
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 *         cdef cython.double den  = sin(.5 * mx)             # <<<<<<<<<<<<<<
 *         cdef cython.double n  = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_mx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":38
 *         cdef cython.double mx  = cx * self.ratio
 *         cdef cython.double den  = sin(.5 * mx)
 *         cdef cython.double n  = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":39
 *         cdef cython.double den  = sin(.5 * mx)
 *         cdef cython.double n  = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) <  NEARLY_ZERO:
 *             # return -1.0 in original but seems to cause weird inconsistencies
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":40
 *         cdef cython.double n  = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             # return -1.0 in original but seems to cause weird inconsistencies
 *             den = NEARLY_ZERO
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 40, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 40, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":42
 *         if fabs(den) <  NEARLY_ZERO:
 *             # return -1.0 in original but seems to cause weird inconsistencies
 *             den = NEARLY_ZERO             # <<<<<<<<<<<<<<
 * 
 *         return ((sin(cx) * sin(mx * ((n + 1.) / 2.)) * sin((n * mx) / 2.)) -
 */
    __pyx_v_den = __pyx_v_8pysndlib_10generators_NEARLY_ZERO;

    /* "pysndlib/generators.pyx":40
 *         cdef cython.double n  = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             # return -1.0 in original but seems to cause weird inconsistencies
 *             den = NEARLY_ZERO
 */
  }

  /* "pysndlib/generators.pyx":44
 *             den = NEARLY_ZERO
 * 
 *         return ((sin(cx) * sin(mx * ((n + 1.) / 2.)) * sin((n * mx) / 2.)) -             # <<<<<<<<<<<<<<
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_mx * ((__pyx_v_n + 1.) / 2.))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_n * __pyx_v_mx) / 2.)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 44, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":45
 * 
 *         return ((sin(cx) * sin(mx * ((n + 1.) / 2.)) * sin((n * mx) / 2.)) -
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_float__5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = PyFloat_FromDouble((__pyx_v_mx * (__pyx_v_n + .5))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "pysndlib/generators.pyx":44
 *             den = NEARLY_ZERO
 * 
 *         return ((sin(cx) * sin(mx * ((n + 1.) / 2.)) * sin((n * mx) / 2.)) -             # <<<<<<<<<<<<<<
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)
 * 
 */
  __pyx_t_5 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 44, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":45
 * 
 *         return ((sin(cx) * sin(mx * ((n + 1.) / 2.)) * sin((n * mx) / 2.)) -
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_n + 1.) * __pyx_v_den)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 45, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":34
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Nssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Nssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Nssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 34, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 34, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_2next(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_2next(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 34, __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("pysndlib.generators.Nssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":47
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 47, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 47, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 47, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 47, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":48
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 48, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":47
 *                 (cos(cx) * .5 * (den + sin(mx * (n + .5))))) /  ((n + 1.) * den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":31
 * # --------------- nssb ---------------- #
 * cdef class Nssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 31, __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("pysndlib.generators.Nssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Nssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Nssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Nssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 31, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":32
 * cdef class Nssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 32, __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("pysndlib.generators.Nssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Nssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Nssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Nssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 32, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":33
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 33, __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("pysndlib.generators.Nssb.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Nssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Nssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Nssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 33, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nssb.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":34
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 34, __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("pysndlib.generators.Nssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Nssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Nssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Nssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 34, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Nssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Nssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Nssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Nssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Nssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Nssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Nssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":51
 * 
 * 
 * cpdef Nssb make_nssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_1make_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_f_8pysndlib_10generators_make_nssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":59
 *     :return: Nssb gen
 *     """
 *     return Nssb(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 59, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 59, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 59, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":51
 * 
 * 
 * cpdef Nssb make_nssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_1make_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_make_nssb, "\n    Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.\n    \n    :param frequency: frequency in hz\n    :param ratio: \n    :return: Nssb gen\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_1make_nssb = {"make_nssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_1make_nssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_make_nssb};
static PyObject *__pyx_pw_8pysndlib_10generators_1make_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nssb") < 0)) __PYX_ERR(0, 51, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 51, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_make_nssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_make_nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __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("pysndlib.generators.make_nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":62
 * 
 * 
 * cpdef cython.double nssb(Nssb gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_3nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nssb(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":70
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 70, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":62
 * 
 * 
 * cpdef cython.double nssb(Nssb gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_3nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_2nssb, "\n    returns n sinusoids from frequency spaced by frequency * ratio.\n    \n    :param gen: nssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_3nssb = {"nssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_3nssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_2nssb};
static PyObject *__pyx_pw_8pysndlib_10generators_3nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nssb") < 0)) __PYX_ERR(0, 62, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 62, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nssb, 1, "gen", 0))) __PYX_ERR(0, 62, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_2nssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_2nssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 62, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __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("pysndlib.generators.nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":73
 * 
 * 
 * cpdef cython.bint is_nssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5is_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":80
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- nxysin ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":73
 * 
 * 
 * cpdef cython.bint is_nssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5is_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_4is_nssb, "\n    returns True if gen is an nssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5is_nssb = {"is_nssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5is_nssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_4is_nssb};
static PyObject *__pyx_pw_8pysndlib_10generators_5is_nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 73, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nssb") < 0)) __PYX_ERR(0, 73, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 73, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4is_nssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4is_nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 73, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __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("pysndlib.generators.is_nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":84
 * # --------------- nxysin ---------------- #
 * 
 * def nodds(x, n):             # <<<<<<<<<<<<<<
 *     den = sin(x)
 *     num = sin(n * x)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7nodds(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7nodds = {"nodds", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7nodds, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7nodds(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nodds (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("nodds", 1, 2, 2, 1); __PYX_ERR(0, 84, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nodds") < 0)) __PYX_ERR(0, 84, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nodds", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 84, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nodds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6nodds(__pyx_self, __pyx_v_x, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6nodds(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n) {
  PyObject *__pyx_v_den = NULL;
  PyObject *__pyx_v_num = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nodds", 1);

  /* "pysndlib/generators.pyx":85
 * 
 * def nodds(x, n):
 *     den = sin(x)             # <<<<<<<<<<<<<<
 *     num = sin(n * x)
 *     if den == 0.0:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_x};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_den = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":86
 * def nodds(x, n):
 *     den = sin(x)
 *     num = sin(n * x)             # <<<<<<<<<<<<<<
 *     if den == 0.0:
 *         return 0.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_v_n, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_num = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":87
 *     den = sin(x)
 *     num = sin(n * x)
 *     if den == 0.0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     else:
 */
  __pyx_t_6 = (__Pyx_PyFloat_BoolEqObjC(__pyx_v_den, __pyx_float_0_0, 0.0, 0, 0)); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 87, __pyx_L1_error)
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":88
 *     num = sin(n * x)
 *     if den == 0.0:
 *         return 0.0             # <<<<<<<<<<<<<<
 *     else:
 *         return (num*num) / den
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_r = __pyx_float_0_0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":87
 *     den = sin(x)
 *     num = sin(n * x)
 *     if den == 0.0:             # <<<<<<<<<<<<<<
 *         return 0.0
 *     else:
 */
  }

  /* "pysndlib/generators.pyx":90
 *         return 0.0
 *     else:
 *         return (num*num) / den             # <<<<<<<<<<<<<<
 * 
 * def find_nxysin_max(n, ratio):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_num, __pyx_v_num); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_den); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":84
 * # --------------- nxysin ---------------- #
 * 
 * def nodds(x, n):             # <<<<<<<<<<<<<<
 *     den = sin(x)
 *     num = sin(n * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.nodds", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_den);
  __Pyx_XDECREF(__pyx_v_num);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9find_nxysin_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9find_nxysin_max = {"find_nxysin_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9find_nxysin_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9find_nxysin_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_ratio = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_nxysin_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_ratio,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 92, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 92, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_nxysin_max", 1, 2, 2, 1); __PYX_ERR(0, 92, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_nxysin_max") < 0)) __PYX_ERR(0, 92, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_n = values[0];
    __pyx_v_ratio = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_nxysin_max", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 92, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8find_nxysin_max(__pyx_self, __pyx_v_n, __pyx_v_ratio);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":93
 * 
 * def find_nxysin_max(n, ratio):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *         a2 = x / 2
 *         den = sin(a2)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_1ns(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15find_nxysin_max_1ns = {"ns", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15find_nxysin_max_1ns, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_1ns(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ns (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ns", 1, 2, 2, 1); __PYX_ERR(0, 93, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ns") < 0)) __PYX_ERR(0, 93, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ns", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 93, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.ns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(__pyx_self, __pyx_v_x, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n) {
  PyObject *__pyx_v_a2 = NULL;
  PyObject *__pyx_v_den = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ns", 1);

  /* "pysndlib/generators.pyx":94
 * def find_nxysin_max(n, ratio):
 *     def ns(x, n):
 *         a2 = x / 2             # <<<<<<<<<<<<<<
 *         den = sin(a2)
 *         if den == 0.0:
 */
  __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_v_x, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_a2 = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":95
 *     def ns(x, n):
 *         a2 = x / 2
 *         den = sin(a2)             # <<<<<<<<<<<<<<
 *         if den == 0.0:
 *             return 0.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 95, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_a2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 95, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_den = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":96
 *         a2 = x / 2
 *         den = sin(a2)
 *         if den == 0.0:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  __pyx_t_5 = (__Pyx_PyFloat_BoolEqObjC(__pyx_v_den, __pyx_float_0_0, 0.0, 0, 0)); if (unlikely((__pyx_t_5 < 0))) __PYX_ERR(0, 96, __pyx_L1_error)
  if (__pyx_t_5) {

    /* "pysndlib/generators.pyx":97
 *         den = sin(a2)
 *         if den == 0.0:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         else:
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_r = __pyx_float_0_0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":96
 *         a2 = x / 2
 *         den = sin(a2)
 *         if den == 0.0:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":99
 *             return 0.0
 *         else:
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den             # <<<<<<<<<<<<<<
 * 
 *     def find_mid_max(n, lo, hi):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Multiply(__pyx_v_n, __pyx_v_a2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyInt_AddCObj(__pyx_int_1, __pyx_v_n, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_v_a2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_v_den); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":93
 * 
 * def find_nxysin_max(n, ratio):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *         a2 = x / 2
 *         den = sin(a2)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.ns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a2);
  __Pyx_XDECREF(__pyx_v_den);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":101
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_3find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15find_nxysin_max_3find_mid_max = {"find_mid_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15find_nxysin_max_3find_mid_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_3find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_lo = 0;
  PyObject *__pyx_v_hi = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_mid_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_lo,&__pyx_n_s_hi,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 101, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lo)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 101, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, 1); __PYX_ERR(0, 101, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hi)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 101, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, 2); __PYX_ERR(0, 101, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_mid_max") < 0)) __PYX_ERR(0, 101, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_n = values[0];
    __pyx_v_lo = values[1];
    __pyx_v_hi = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 101, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(__pyx_self, __pyx_v_n, __pyx_v_lo, __pyx_v_hi);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_cur_scope;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_outer_scope;
  PyObject *__pyx_v_mid = NULL;
  PyObject *__pyx_v_ylo = NULL;
  PyObject *__pyx_v_yhi = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_mid_max", 1);
  __pyx_outer_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "pysndlib/generators.pyx":102
 * 
 *     def find_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2             # <<<<<<<<<<<<<<
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_lo, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mid = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":103
 *     def find_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)             # <<<<<<<<<<<<<<
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 103, __pyx_L1_error) }
  __pyx_t_2 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_lo, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_ylo = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":104
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)             # <<<<<<<<<<<<<<
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 *             return ns(mid,n)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 104, __pyx_L1_error) }
  __pyx_t_2 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_hi, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_yhi = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":105
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return ns(mid,n)
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fabs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_ylo, __pyx_v_yhi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":106
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 *             return ns(mid,n)             # <<<<<<<<<<<<<<
 *         else:
 *             if ylo > yhi:
 */
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 106, __pyx_L1_error) }
    __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_mid, __pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":105
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return ns(mid,n)
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":108
 *             return ns(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
  /*else*/ {
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_ylo, __pyx_v_yhi, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 108, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {

      /* "pysndlib/generators.pyx":109
 *         else:
 *             if ylo > yhi:
 *                 return find_mid_max(n, lo, mid)             # <<<<<<<<<<<<<<
 *             else:
 *                 return find_mid_max(n, mid, hi)
 */
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 109, __pyx_L1_error) }
      __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_lo, __pyx_v_mid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":108
 *             return ns(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
    }

    /* "pysndlib/generators.pyx":111
 *                 return find_mid_max(n, lo, mid)
 *             else:
 *                 return find_mid_max(n, mid, hi)             # <<<<<<<<<<<<<<
 * 
 *     def find_nodds_mid_max(n, lo, hi):
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 111, __pyx_L1_error) }
      __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_mid, __pyx_v_hi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
  }

  /* "pysndlib/generators.pyx":101
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mid);
  __Pyx_XDECREF(__pyx_v_ylo);
  __Pyx_XDECREF(__pyx_v_yhi);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":113
 *                 return find_mid_max(n, mid, hi)
 * 
 *     def find_nodds_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_5find_nodds_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15find_nxysin_max_5find_nodds_mid_max = {"find_nodds_mid_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15find_nxysin_max_5find_nodds_mid_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15find_nxysin_max_5find_nodds_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_lo = 0;
  PyObject *__pyx_v_hi = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_nodds_mid_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_lo,&__pyx_n_s_hi,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lo)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_nodds_mid_max", 1, 3, 3, 1); __PYX_ERR(0, 113, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hi)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_nodds_mid_max", 1, 3, 3, 2); __PYX_ERR(0, 113, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_nodds_mid_max") < 0)) __PYX_ERR(0, 113, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_n = values[0];
    __pyx_v_lo = values[1];
    __pyx_v_hi = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_nodds_mid_max", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 113, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.find_nodds_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(__pyx_self, __pyx_v_n, __pyx_v_lo, __pyx_v_hi);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_cur_scope;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_outer_scope;
  PyObject *__pyx_v_mid = NULL;
  PyObject *__pyx_v_ylo = NULL;
  PyObject *__pyx_v_yhi = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_nodds_mid_max", 1);
  __pyx_outer_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "pysndlib/generators.pyx":114
 * 
 *     def find_nodds_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2             # <<<<<<<<<<<<<<
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_lo, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mid = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":115
 *     def find_nodds_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)             # <<<<<<<<<<<<<<
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nodds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_lo, __pyx_v_n};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_ylo = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":116
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)             # <<<<<<<<<<<<<<
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 *             return nodds(mid,n)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nodds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_hi, __pyx_v_n};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_yhi = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":117
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return nodds(mid,n)
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fabs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_ylo, __pyx_v_yhi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":118
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:
 *             return nodds(mid,n)             # <<<<<<<<<<<<<<
 *         else:
 *             if ylo > yhi:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nodds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_mid, __pyx_v_n};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":117
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return nodds(mid,n)
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":120
 *             return nodds(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_nodds_mid_max(n, lo, mid)
 *             else:
 */
  /*else*/ {
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_ylo, __pyx_v_yhi, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 120, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 120, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {

      /* "pysndlib/generators.pyx":121
 *         else:
 *             if ylo > yhi:
 *                 return find_nodds_mid_max(n, lo, mid)             # <<<<<<<<<<<<<<
 *             else:
 *                 return find_nodds_mid_max(n, mid, hi)
 */
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_nodds_mid_max)) { __Pyx_RaiseClosureNameError("find_nodds_mid_max"); __PYX_ERR(0, 121, __pyx_L1_error) }
      __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(__pyx_cur_scope->__pyx_v_find_nodds_mid_max, __pyx_v_n, __pyx_v_lo, __pyx_v_mid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":120
 *             return nodds(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_nodds_mid_max(n, lo, mid)
 *             else:
 */
    }

    /* "pysndlib/generators.pyx":123
 *                 return find_nodds_mid_max(n, lo, mid)
 *             else:
 *                 return find_nodds_mid_max(n, mid, hi)             # <<<<<<<<<<<<<<
 * 
 *     if ratio == 1:
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_nodds_mid_max)) { __Pyx_RaiseClosureNameError("find_nodds_mid_max"); __PYX_ERR(0, 123, __pyx_L1_error) }
      __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(__pyx_cur_scope->__pyx_v_find_nodds_mid_max, __pyx_v_n, __pyx_v_mid, __pyx_v_hi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 123, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
  }

  /* "pysndlib/generators.pyx":113
 *                 return find_mid_max(n, mid, hi)
 * 
 *     def find_nodds_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max.find_nodds_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mid);
  __Pyx_XDECREF(__pyx_v_ylo);
  __Pyx_XDECREF(__pyx_v_yhi);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */

static PyObject *__pyx_pf_8pysndlib_10generators_8find_nxysin_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_ratio) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_nxysin_max", 0);
  __pyx_cur_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 92, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }

  /* "pysndlib/generators.pyx":93
 * 
 * def find_nxysin_max(n, ratio):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *         a2 = x / 2
 *         den = sin(a2)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15find_nxysin_max_1ns, 0, __pyx_n_s_find_nxysin_max_locals_ns, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ns = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":101
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15find_nxysin_max_3find_mid_max, 0, __pyx_n_s_find_nxysin_max_locals_find_mid, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_find_mid_max = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":113
 *                 return find_mid_max(n, mid, hi)
 * 
 *     def find_nodds_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15find_nxysin_max_5find_nodds_mid_max, 0, __pyx_n_s_find_nxysin_max_locals_find_nodd, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_find_nodds_mid_max = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":125
 *                 return find_nodds_mid_max(n, mid, hi)
 * 
 *     if ratio == 1:             # <<<<<<<<<<<<<<
 *         return find_mid_max(n, 0.0, PI / (n + .5))
 *     elif ratio == 2:
 */
  __pyx_t_2 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_ratio, __pyx_int_1, 1, 0)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 125, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "pysndlib/generators.pyx":126
 * 
 *     if ratio == 1:
 *         return find_mid_max(n, 0.0, PI / (n + .5))             # <<<<<<<<<<<<<<
 *     elif ratio == 2:
 *         return find_nodds_mid_max(n, 0.0, PI / ((2 * n) + .5))
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyFloat_AddObjC(__pyx_v_n, __pyx_float__5, .5, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_float_0_0, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":125
 *                 return find_nodds_mid_max(n, mid, hi)
 * 
 *     if ratio == 1:             # <<<<<<<<<<<<<<
 *         return find_mid_max(n, 0.0, PI / (n + .5))
 *     elif ratio == 2:
 */
  }

  /* "pysndlib/generators.pyx":127
 *     if ratio == 1:
 *         return find_mid_max(n, 0.0, PI / (n + .5))
 *     elif ratio == 2:             # <<<<<<<<<<<<<<
 *         return find_nodds_mid_max(n, 0.0, PI / ((2 * n) + .5))
 *     else:
 */
  __pyx_t_2 = (__Pyx_PyInt_BoolEqObjC(__pyx_v_ratio, __pyx_int_2, 2, 0)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 127, __pyx_L1_error)
  if (__pyx_t_2) {

    /* "pysndlib/generators.pyx":128
 *         return find_mid_max(n, 0.0, PI / (n + .5))
 *     elif ratio == 2:
 *         return find_nodds_mid_max(n, 0.0, PI / ((2 * n) + .5))             # <<<<<<<<<<<<<<
 *     else:
 *         return n
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyInt_MultiplyCObj(__pyx_int_2, __pyx_v_n, 2, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyFloat_AddObjC(__pyx_t_4, __pyx_float__5, .5, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_pf_8pysndlib_10generators_15find_nxysin_max_4find_nodds_mid_max(__pyx_cur_scope->__pyx_v_find_nodds_mid_max, __pyx_v_n, __pyx_float_0_0, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 128, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":127
 *     if ratio == 1:
 *         return find_mid_max(n, 0.0, PI / (n + .5))
 *     elif ratio == 2:             # <<<<<<<<<<<<<<
 *         return find_nodds_mid_max(n, 0.0, PI / ((2 * n) + .5))
 *     else:
 */
  }

  /* "pysndlib/generators.pyx":130
 *         return find_nodds_mid_max(n, 0.0, PI / ((2 * n) + .5))
 *     else:
 *         return n             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_n);
    __pyx_r = __pyx_v_n;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.find_nxysin_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":135
 * cdef class Nxysin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 135, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 135, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 135, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin___init__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Nxysin___init__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":136
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 136, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":137
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":138
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.norm = 1.0 / find_nxysin_max(self.n, self.ratio)
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":139
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / find_nxysin_max(self.n, self.ratio)
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":140
 *         self.n = n
 *         self.angle = 0.0
 *         self.norm = 1.0 / find_nxysin_max(self.n, self.ratio)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_find_nxysin_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_3 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_3 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_7};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_3, 2+__pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 140, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":135
 * cdef class Nxysin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":143
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Nxysin_next(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Nxysin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_v_norm;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Nxysin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":144
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":145
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n  = self.n
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":146
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)             # <<<<<<<<<<<<<<
 *         cdef cython.double n  = self.n
 *         cdef cython.double norm  = self.norm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_y * .5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 146, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 146, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":147
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n  = self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double norm  = self.norm
 *         self.angle += fm + self.frequency
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":148
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n  = self.n
 *         cdef cython.double norm  = self.norm             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 */
  __pyx_t_7 = __pyx_v_self->norm;
  __pyx_v_norm = __pyx_t_7;

  /* "pysndlib/generators.pyx":149
 *         cdef cython.double n  = self.n
 *         cdef cython.double norm  = self.norm
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 0.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":150
 *         cdef cython.double norm  = self.norm
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":151
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)
 * 
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":150
 *         cdef cython.double norm  = self.norm
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)
 */
  }

  /* "pysndlib/generators.pyx":152
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 0.0
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_x + ((0.5 * (__pyx_v_n - 1.0)) * __pyx_v_y))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(((0.5 * __pyx_v_n) * __pyx_v_y)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 152, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":143
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

  /* 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("pysndlib.generators.Nxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxysin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxysin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 143, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 143, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_2next(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_2next(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nxysin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __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("pysndlib.generators.Nxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":154
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 154, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 154, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 154, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":155
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxysin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":154
 *         return ((sin(x + (0.5 * (n - 1) * y)) * sin(0.5 * n * y) * norm) / den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":42
 * # --------------- nxysin ---------------- #
 * cdef class Nxysin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 42, __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("pysndlib.generators.Nxysin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxysin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 42, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":43
 * cdef class Nxysin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 43, __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("pysndlib.generators.Nxysin.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxysin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 43, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":44
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 44, __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("pysndlib.generators.Nxysin.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxysin_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 44, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":45
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 45, __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("pysndlib.generators.Nxysin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxysin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 45, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":46
 *     cdef public cython.int n
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 46, __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("pysndlib.generators.Nxysin.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxysin_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxysin_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxysin_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 46, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxysin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxysin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Nxysin); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_203726100);
    __Pyx_GIVEREF(__pyx_int_203726100);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_203726100)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, None), state
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nxysin); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_203726100);
    __Pyx_GIVEREF(__pyx_int_203726100);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_203726100)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxysin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxysin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxysin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxysin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxysin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxysin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nxysin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":158
 * 
 * 
 * cpdef Nxysin make_nxysin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_11make_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_f_8pysndlib_10generators_make_nxysin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxysin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxysin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":168
 * 
 *     """
 *     return Nxysin(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 168, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 168, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 168, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxysin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 168, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":158
 * 
 * 
 * cpdef Nxysin make_nxysin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11make_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_10make_nxysin, "\n    Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.\n    \n    :param frequency: frequency in hz\n    :param ratio: \n    :param n: \n    :return: nssb gen\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11make_nxysin = {"make_nxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11make_nxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_10make_nxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_11make_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 158, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 158, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 158, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nxysin") < 0)) __PYX_ERR(0, 158, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nxysin", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 158, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10make_nxysin(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10make_nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nxysin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nxysin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 158, __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("pysndlib.generators.make_nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":170
 *     return Nxysin(frequency, ratio, n)
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sines from frequency spaced by frequency * ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_13nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxysin(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxysin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":179
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nxysin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxysin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 179, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":170
 *     return Nxysin(frequency, ratio, n)
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sines from frequency spaced by frequency * ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_13nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_12nxysin, "\n    returns n sines from frequency spaced by frequency * ratio.\n    \n    :param gen: nxysin gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_13nxysin = {"nxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_13nxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_12nxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_13nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nxysin") < 0)) __PYX_ERR(0, 170, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nxysin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nxysin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 170, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nxysin, 1, "gen", 0))) __PYX_ERR(0, 170, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_12nxysin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_12nxysin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nxysin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nxysin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 170, __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("pysndlib.generators.nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxysin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_15is_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxysin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":188
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nxysin)             # <<<<<<<<<<<<<<
 * 
 * # --------------- nxycos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nxysin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxysin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15is_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_14is_nxysin, "\n    returns True if gen is an nxysin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15is_nxysin = {"is_nxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15is_nxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_14is_nxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_15is_nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nxysin") < 0)) __PYX_ERR(0, 181, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nxysin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 181, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14is_nxysin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14is_nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nxysin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.is_nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":194
 * cdef class Nxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 194, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 194, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos___init__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Nxycos___init__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":195
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 195, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":196
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":197
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":198
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":194
 * cdef class Nxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":201
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Nxycos_next(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Nxycos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Nxycos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":202
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":203
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n = self.n
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":204
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_y * .5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":205
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":206
 *         cdef cython.double den  = sin(y * .5)
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 1.
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":207
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":208
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 1.             # <<<<<<<<<<<<<<
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)
 * 
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":207
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)
 */
  }

  /* "pysndlib/generators.pyx":209
 *         if fabs(den) <  NEARLY_ZERO:
 *             return 1.
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_x + ((0.5 * (__pyx_v_n - 1.0)) * __pyx_v_y))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(((.5 * __pyx_v_n) * __pyx_v_y)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 209, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":201
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

  /* 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("pysndlib.generators.Nxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxycos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxycos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 201, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 201, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_2next(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_2next(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nxycos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __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("pysndlib.generators.Nxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":211
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 211, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 211, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 211, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 211, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":212
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 212, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":211
 *         return (cos(x + (0.5 * (n - 1) * y)) * sin(.5 * n * y)) / (n * den)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":53
 * # --------------- nxycos ---------------- #
 * cdef class Nxycos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 53, __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("pysndlib.generators.Nxycos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 53, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":54
 * cdef class Nxycos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 54, __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("pysndlib.generators.Nxycos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 54, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":55
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 55, __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("pysndlib.generators.Nxycos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxycos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxycos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxycos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 55, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":56
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 56, __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("pysndlib.generators.Nxycos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Nxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Nxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Nxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 56, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxycos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nxycos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nxycos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Nxycos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Nxycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Nxycos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Nxycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxycos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":215
 * 
 * 
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_17make_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_f_8pysndlib_10generators_make_nxycos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxycos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxycos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":217
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 217, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 217, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 217, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxycos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":215
 * 
 * 
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_17make_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_16make_nxycos, "Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_17make_nxycos = {"make_nxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_17make_nxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_16make_nxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_17make_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 215, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 215, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 215, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nxycos") < 0)) __PYX_ERR(0, 215, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nxycos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 215, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16make_nxycos(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16make_nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nxycos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nxycos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 215, __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("pysndlib.generators.make_nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":219
 *     return Nxycos(frequency, ratio, n)
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_19nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxycos(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxycos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":227
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nxycos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxycos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 227, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":219
 *     return Nxycos(frequency, ratio, n)
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_19nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_18nxycos, "\n    returns n cosines from frequency spaced by frequency * ratio.\n\n    :param gen: nxycos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_19nxycos = {"nxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_19nxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_18nxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_19nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nxycos") < 0)) __PYX_ERR(0, 219, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nxycos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nxycos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 219, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nxycos, 1, "gen", 0))) __PYX_ERR(0, 219, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_18nxycos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_18nxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nxycos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nxycos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __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("pysndlib.generators.nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":229
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxycos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_21is_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxycos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":236
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nxycos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nxycos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":229
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxycos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21is_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_20is_nxycos, "\n    returns True if gen is an nxycos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_21is_nxycos = {"is_nxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21is_nxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_20is_nxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_21is_nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nxycos") < 0)) __PYX_ERR(0, 229, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nxycos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 229, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20is_nxycos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_20is_nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nxycos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 229, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __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("pysndlib.generators.is_nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":243
 * cdef class Nxy1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 243, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 243, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 243, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos___init__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Nxy1cos___init__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":244
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":245
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 245, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":246
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 246, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":247
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":243
 * cdef class Nxy1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":249
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Nxy1cos_next(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nxy1cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 249, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Nxy1cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":250
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y = x * self.ratio
 *         cdef cython.double den = cos(y * .5)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":251
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double den = cos(y * .5)
 *         cdef cython.double n = self.n
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":252
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 *         cdef cython.double den = cos(y * .5)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         self.angle += self.frequency + fm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_y * .5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":253
 *         cdef cython.double y = x * self.ratio
 *         cdef cython.double den = cos(y * .5)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":254
 *         cdef cython.double den = cos(y * .5)
 *         cdef cython.double n = self.n
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return -1.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":255
 *         cdef cython.double n = self.n
 *         self.angle += self.frequency + fm
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return -1.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 255, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":256
 *         self.angle += self.frequency + fm
 *         if fabs(den) < NEARLY_ZERO:
 *             return -1.0             # <<<<<<<<<<<<<<
 *         else:
 *             return max(-1., min(1.0, (sin(n * y) * sin(x + ((n - .5) * y))) / (2 * n * den)))
 */
    __pyx_r = -1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":255
 *         cdef cython.double n = self.n
 *         self.angle += self.frequency + fm
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return -1.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":258
 *             return -1.0
 *         else:
 *             return max(-1., min(1.0, (sin(n * y) * sin(x + ((n - .5) * y))) / (2 * n * den)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_y)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyFloat_FromDouble((__pyx_v_x + ((__pyx_v_n - .5) * __pyx_v_y))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(((2.0 * __pyx_v_n) * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = 1.0;
    __pyx_t_1 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_8) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
    } else {
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_4 = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = -1.;
    __pyx_t_3 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
    } else {
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":249
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

  /* 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("pysndlib.generators.Nxy1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 249, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 249, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_2next(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_2next(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nxy1cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 249, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __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("pysndlib.generators.Nxy1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":260
 *             return max(-1., min(1.0, (sin(n * y) * sin(x + ((n - .5) * y))) / (2 * n * den)))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 260, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 260, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 260, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":261
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 261, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":260
 *             return max(-1., min(1.0, (sin(n * y) * sin(x + ((n - .5) * y))) / (2 * n * den)))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":63
 * # --------------- nxy1cos ---------------- #
 * cdef class Nxy1cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 63, __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("pysndlib.generators.Nxy1cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 63, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":64
 * cdef class Nxy1cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 64, __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("pysndlib.generators.Nxy1cos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 64, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":65
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 65, __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("pysndlib.generators.Nxy1cos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 65, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":66
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 66, __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("pysndlib.generators.Nxy1cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 66, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nxy1cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nxy1cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":264
 * 
 * 
 * cpdef cython.double make_nxy1cos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_23make_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_make_nxy1cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxy1cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxy1cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":270
 * 
 *     """
 *     return Nxy1cos(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 270, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 270, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 270, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":264
 * 
 * 
 * cpdef cython.double make_nxy1cos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_23make_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_22make_nxy1cos, "\n    Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'. \n        nxy1cos is the same as nxycos, but every other component is multiplied by -1, and \"n\" produces 2n components.\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_23make_nxy1cos = {"make_nxy1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_23make_nxy1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_22make_nxy1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_23make_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nxy1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nxy1cos") < 0)) __PYX_ERR(0, 264, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nxy1cos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 264, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22make_nxy1cos(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22make_nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_make_nxy1cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxy1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_make_nxy1cos(0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 264, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __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("pysndlib.generators.make_nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":273
 * 
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_25nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxy1cos(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":280
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":273
 * 
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_25nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_24nxy1cos, "\n    \n    :param gen: nxy1cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_25nxy1cos = {"nxy1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_25nxy1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_24nxy1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_25nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nxy1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nxy1cos") < 0)) __PYX_ERR(0, 273, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nxy1cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 273, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nxy1cos, 1, "gen", 0))) __PYX_ERR(0, 273, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_24nxy1cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_24nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nxy1cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nxy1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nxy1cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __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("pysndlib.generators.nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":283
 * 
 * 
 * cpdef cython.bint is_nxy1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_27is_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxy1cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":290
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nxy1cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nxy1cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":283
 * 
 * 
 * cpdef cython.bint is_nxy1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_27is_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_26is_nxy1cos, "\n    returns True if gen is an nxy1cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_27is_nxy1cos = {"is_nxy1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_27is_nxy1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_26is_nxy1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_27is_nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nxy1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nxy1cos") < 0)) __PYX_ERR(0, 283, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nxy1cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 283, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_26is_nxy1cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_26is_nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nxy1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nxy1cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __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("pysndlib.generators.is_nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":297
 * cdef class Nxy1sin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 297, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 297, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin___init__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Nxy1sin___init__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":298
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":299
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 299, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":300
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 300, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":301
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":297
 * cdef class Nxy1sin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":304
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Nxy1sin_next(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nxy1sin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_v_res;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Nxy1sin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 304, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":305
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = cos(y * .5)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":306
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double den  = cos(y * .5)
 *         cdef cython.double n = self.n
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":307
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = cos(y * .5)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_y * .5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":308
 *         cdef cython.double y  = x * self.ratio
 *         cdef cython.double den  = cos(y * .5)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         cdef cython.double res = (sin(x + (.5 * (n - 1) * (y + PI))) * sin(.5 * n * (y + PI))) / (n * den)
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":309
 *         cdef cython.double den  = cos(y * .5)
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double res = (sin(x + (.5 * (n - 1) * (y + PI))) * sin(.5 * n * (y + PI))) / (n * den)
 *         return res
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":310
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         cdef cython.double res = (sin(x + (.5 * (n - 1) * (y + PI))) * sin(.5 * n * (y + PI))) / (n * den)             # <<<<<<<<<<<<<<
 *         return res
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_x + ((.5 * (__pyx_v_n - 1.0)) * (__pyx_v_y + __pyx_v_8pysndlib_10generators_PI)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(((.5 * __pyx_v_n) * (__pyx_v_y + __pyx_v_8pysndlib_10generators_PI))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 310, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_res = __pyx_t_7;

  /* "pysndlib/generators.pyx":311
 *         self.angle += fm + self.frequency
 *         cdef cython.double res = (sin(x + (.5 * (n - 1) * (y + PI))) * sin(.5 * n * (y + PI))) / (n * den)
 *         return res             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_res;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":304
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */

  /* 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("pysndlib.generators.Nxy1sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1sin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1sin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 304, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 304, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_2next(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_2next(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nxy1sin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 304, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 304, __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("pysndlib.generators.Nxy1sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":313
 *         return res
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 313, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 313, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_4__call__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":314
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1sin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":313
 *         return res
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":73
 * # --------------- nxy1sin ---------------- #
 * cdef class Nxy1sin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 73, __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("pysndlib.generators.Nxy1sin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 73, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":74
 * cdef class Nxy1sin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 74, __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("pysndlib.generators.Nxy1sin.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 74, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":75
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 75, __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("pysndlib.generators.Nxy1sin.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 75, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":76
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 76, __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("pysndlib.generators.Nxy1sin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nxy1sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 76, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nxy1sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nxy1sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nxy1sin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nxy1sin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1sin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nxy1sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":317
 * 
 * 
 * cpdef Nxy1sin make_nxy1sin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_29make_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_f_8pysndlib_10generators_make_nxy1sin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nxy1sin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxy1sin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":322
 *     nxy1sin is the same as nxysin, but every other component is multiplied by -1, and "n" produces 2n components.
 *     """
 *     return Nxy1sin(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 322, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 322, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 322, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1sin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":317
 * 
 * 
 * cpdef Nxy1sin make_nxy1sin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_29make_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_28make_nxy1sin, "\n    Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'. \n    nxy1sin is the same as nxysin, but every other component is multiplied by -1, and \"n\" produces 2n components. \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_29make_nxy1sin = {"make_nxy1sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_29make_nxy1sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_28make_nxy1sin};
static PyObject *__pyx_pw_8pysndlib_10generators_29make_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nxy1sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 317, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 317, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 317, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nxy1sin") < 0)) __PYX_ERR(0, 317, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nxy1sin", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 317, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_28make_nxy1sin(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_28make_nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nxy1sin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nxy1sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nxy1sin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 317, __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("pysndlib.generators.make_nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":325
 * 
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_31nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nxy1sin(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1sin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":332
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1sin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 332, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":325
 * 
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_31nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_30nxy1sin, "\n    \n    :param gen: nxy1sin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_31nxy1sin = {"nxy1sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_31nxy1sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_30nxy1sin};
static PyObject *__pyx_pw_8pysndlib_10generators_31nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nxy1sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 325, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 325, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nxy1sin") < 0)) __PYX_ERR(0, 325, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 325, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nxy1sin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 325, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nxy1sin, 1, "gen", 0))) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_30nxy1sin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_30nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nxy1sin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nxy1sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nxy1sin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 325, __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("pysndlib.generators.nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":335
 * 
 * 
 * cpdef cython.bint is_nxy1sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1sin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_33is_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nxy1sin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":342
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nxy1sin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nxy1sin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":335
 * 
 * 
 * cpdef cython.bint is_nxy1sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1sin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_33is_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_32is_nxy1sin, "\n    returns True if gen is an nxy1sin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_33is_nxy1sin = {"is_nxy1sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_33is_nxy1sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_32is_nxy1sin};
static PyObject *__pyx_pw_8pysndlib_10generators_33is_nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nxy1sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nxy1sin") < 0)) __PYX_ERR(0, 335, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nxy1sin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 335, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_32is_nxy1sin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_32is_nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nxy1sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nxy1sin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 335, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 335, __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("pysndlib.generators.is_nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_35find_noddsin_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_35find_noddsin_max = {"find_noddsin_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_35find_noddsin_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_35find_noddsin_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_noddsin_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 347, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_noddsin_max") < 0)) __PYX_ERR(0, 347, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_noddsin_max", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 347, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_noddsin_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34find_noddsin_max(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":348
 * 
 * def find_noddsin_max(n):
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */

static PyObject *__pyx_pf_8pysndlib_10generators_680__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__defaults__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_n);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_n)) __PYX_ERR(0, 348, __pyx_L1_error);
  __Pyx_INCREF(((PyObject*)__pyx_float_0_0));
  __Pyx_GIVEREF(((PyObject*)__pyx_float_0_0));
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 348, __pyx_L1_error);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_hi);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_hi);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_hi)) __PYX_ERR(0, 348, __pyx_L1_error);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None)) __PYX_ERR(0, 348, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.__defaults__", __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_pw_8pysndlib_10generators_16find_noddsin_max_1find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_16find_noddsin_max_1find_mid_max = {"find_mid_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16find_noddsin_max_1find_mid_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_16find_noddsin_max_1find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_lo = 0;
  PyObject *__pyx_v_hi = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_mid_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_lo,&__pyx_n_s_hi,0};
    __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
    values[0] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_n);
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)((PyObject*)__pyx_float_0_0)));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_dynamic_args->__pyx_arg_hi);
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 348, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lo);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 348, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hi);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 348, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_mid_max") < 0)) __PYX_ERR(0, 348, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
    __pyx_v_lo = values[1];
    __pyx_v_hi = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_mid_max", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 348, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_noddsin_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16find_noddsin_max_find_mid_max(__pyx_self, __pyx_v_n, __pyx_v_lo, __pyx_v_hi);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16find_noddsin_max_find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *__pyx_cur_scope;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *__pyx_outer_scope;
  PyObject *__pyx_v_mid = NULL;
  PyObject *__pyx_v_ylo = NULL;
  PyObject *__pyx_v_yhi = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_mid_max", 1);
  __pyx_outer_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "pysndlib/generators.pyx":349
 * def find_noddsin_max(n):
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2             # <<<<<<<<<<<<<<
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_lo, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mid = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":350
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)             # <<<<<<<<<<<<<<
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < 1.0e-9:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nodds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_lo, __pyx_v_n};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 350, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_ylo = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":351
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)             # <<<<<<<<<<<<<<
 *         if fabs(ylo - yhi) < 1.0e-9:
 *             return nodds(mid,n)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_nodds); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_hi, __pyx_v_n};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_v_yhi = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":352
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < 1.0e-9:             # <<<<<<<<<<<<<<
 *             return nodds(mid,n)
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fabs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_ylo, __pyx_v_yhi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 352, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_1_0eneg_9, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 352, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":353
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < 1.0e-9:
 *             return nodds(mid,n)             # <<<<<<<<<<<<<<
 *         else:
 *             if ylo > yhi:
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_nodds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 353, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_mid, __pyx_v_n};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 353, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":352
 *         ylo = nodds(lo, n)
 *         yhi = nodds(hi, n)
 *         if fabs(ylo - yhi) < 1.0e-9:             # <<<<<<<<<<<<<<
 *             return nodds(mid,n)
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":355
 *             return nodds(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
  /*else*/ {
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_ylo, __pyx_v_yhi, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 355, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 355, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "pysndlib/generators.pyx":356
 *         else:
 *             if ylo > yhi:
 *                 return find_mid_max(n, lo, mid)             # <<<<<<<<<<<<<<
 *             else:
 *                 return find_mid_max(n, mid, hi)
 */
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 356, __pyx_L1_error) }
      __pyx_t_1 = __pyx_pf_8pysndlib_10generators_16find_noddsin_max_find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_lo, __pyx_v_mid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 356, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":355
 *             return nodds(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
    }

    /* "pysndlib/generators.pyx":358
 *                 return find_mid_max(n, lo, mid)
 *             else:
 *                 return find_mid_max(n, mid, hi)             # <<<<<<<<<<<<<<
 *     return find_mid_max(n)
 * 
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 358, __pyx_L1_error) }
      __pyx_t_1 = __pyx_pf_8pysndlib_10generators_16find_noddsin_max_find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_mid, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }

  /* "pysndlib/generators.pyx":348
 * 
 * def find_noddsin_max(n):
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.find_noddsin_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mid);
  __Pyx_XDECREF(__pyx_v_ylo);
  __Pyx_XDECREF(__pyx_v_yhi);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */

static PyObject *__pyx_pf_8pysndlib_10generators_34find_noddsin_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_noddsin_max", 0);
  __pyx_cur_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 347, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }

  /* "pysndlib/generators.pyx":348
 * 
 * def find_noddsin_max(n):
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_16find_noddsin_max_1find_mid_max, 0, __pyx_n_s_find_noddsin_max_locals_find_mid, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__12)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults), 2)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_1)->__pyx_arg_n = __pyx_v_n;
  __Pyx_GIVEREF(__pyx_v_n);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_MultiplyCObj(__pyx_int_2, __pyx_v_n, 2, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyFloat_AddObjC(__pyx_t_3, __pyx_float_0_5, 0.5, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_1)->__pyx_arg_hi = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_8pysndlib_10generators_680__defaults__);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_find_mid_max = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":359
 *             else:
 *                 return find_mid_max(n, mid, hi)
 *     return find_mid_max(n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.find_noddsin_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":365
 * cdef class Noddsin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary
 *         self.frequency = clm.hz2radians(frequency)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddsin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddsin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 365, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 365, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 365, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddsin___init__(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Noddsin___init__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_v_noddsin_maxes = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  double __pyx_t_6;
  long __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":366
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_double); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__13, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_noddsin_maxes = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":367
 *     def __init__(self, frequency, ratio=1., n=1):
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = max(n, 1)
 */
  __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 367, __pyx_L1_error)
  __pyx_t_6 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_5, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 367, __pyx_L1_error)
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_frequency, __pyx_t_4) < 0) __PYX_ERR(0, 367, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":368
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = max(n, 1)
 *         self.norm = 1.
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ratio, __pyx_v_ratio) < 0) __PYX_ERR(0, 368, __pyx_L1_error)

  /* "pysndlib/generators.pyx":369
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = max(n, 1)             # <<<<<<<<<<<<<<
 *         self.norm = 1.
 *         if not (self.n < 100 and noddsin_maxes[self.n] > 0.0) :
 */
  __pyx_t_7 = 1;
  __Pyx_INCREF(__pyx_v_n);
  __pyx_t_4 = __pyx_v_n;
  __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_8) {
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_1 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_t_1;
  __Pyx_INCREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n, __pyx_t_4) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":370
 *         self.ratio = ratio
 *         self.n = max(n, 1)
 *         self.norm = 1.             # <<<<<<<<<<<<<<
 *         if not (self.n < 100 and noddsin_maxes[self.n] > 0.0) :
 *             noddsin_maxes[self.n] = find_noddsin_max(self.n)
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_norm, __pyx_float_1_) < 0) __PYX_ERR(0, 370, __pyx_L1_error)

  /* "pysndlib/generators.pyx":371
 *         self.n = max(n, 1)
 *         self.norm = 1.
 *         if not (self.n < 100 and noddsin_maxes[self.n] > 0.0) :             # <<<<<<<<<<<<<<
 *             noddsin_maxes[self.n] = find_noddsin_max(self.n)
 *         else:
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_int_100, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_9) {
  } else {
    __pyx_t_8 = __pyx_t_9;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_noddsin_maxes, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __pyx_t_9;
  __pyx_L4_bool_binop_done:;
  __pyx_t_9 = (!__pyx_t_8);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":372
 *         self.norm = 1.
 *         if not (self.n < 100 and noddsin_maxes[self.n] > 0.0) :
 *             noddsin_maxes[self.n] = find_noddsin_max(self.n)             # <<<<<<<<<<<<<<
 *         else:
 *             self.norm = 1.0 / noddsin_maxes[self.n]
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_find_noddsin_max); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = NULL;
    __pyx_t_10 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_10 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 372, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely((PyObject_SetItem(__pyx_v_noddsin_maxes, __pyx_t_4, __pyx_t_1) < 0))) __PYX_ERR(0, 372, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "pysndlib/generators.pyx":371
 *         self.n = max(n, 1)
 *         self.norm = 1.
 *         if not (self.n < 100 and noddsin_maxes[self.n] > 0.0) :             # <<<<<<<<<<<<<<
 *             noddsin_maxes[self.n] = find_noddsin_max(self.n)
 *         else:
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":374
 *             noddsin_maxes[self.n] = find_noddsin_max(self.n)
 *         else:
 *             self.norm = 1.0 / noddsin_maxes[self.n]             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_noddsin_maxes, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_norm, __pyx_t_1) < 0) __PYX_ERR(0, 374, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":375
 *         else:
 *             self.norm = 1.0 / noddsin_maxes[self.n]
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_float_0_0) < 0) __PYX_ERR(0, 375, __pyx_L1_error)

  /* "pysndlib/generators.pyx":365
 * cdef class Noddsin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary
 *         self.frequency = clm.hz2radians(frequency)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_noddsin_maxes);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":378
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Noddsin_next(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddsin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_n;
  double __pyx_v_snx;
  double __pyx_v_den;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 378, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Noddsin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 378, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 378, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":379
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double n = <cython.double>self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double snx = sin(n * self.angle)
 *         cdef cython.double den = sin(self.angle)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_n = ((double)__pyx_t_7);

  /* "pysndlib/generators.pyx":380
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = sin(self.angle)
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 380, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_snx = __pyx_t_7;

  /* "pysndlib/generators.pyx":381
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 *         cdef cython.double den = sin(self.angle)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":382
 *         cdef cython.double snx = sin(n * self.angle)
 *         cdef cython.double den = sin(self.angle)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_frequency); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_t_5) < 0) __PYX_ERR(0, 382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

  /* "pysndlib/generators.pyx":383
 *         cdef cython.double den = sin(self.angle)
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_1};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":384
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         else:
 *             return (self.norm * snx * snx) / den
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":383
 *         cdef cython.double den = sin(self.angle)
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":386
 *             return 0.0
 *         else:
 *             return (self.norm * snx * snx) / den             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_snx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_snx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 386, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":378
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 */

  /* 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("pysndlib.generators.Noddsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddsin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddsin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 378, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 378, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 378, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 378, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddsin_2next(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_2next(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Noddsin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 378, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 378, __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("pysndlib.generators.Noddsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":388
 *             return (self.norm * snx * snx) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 388, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 388, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 388, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddsin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":389
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddsin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 389, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":388
 *             return (self.norm * snx * snx) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddsin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddsin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddsin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Noddsin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Noddsin); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddsin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddsin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddsin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddsin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddsin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddsin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Noddsin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":392
 * 
 * 
 * cpdef Noddsin make_noddsin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_37make_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_f_8pysndlib_10generators_make_noddsin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddsin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddsin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":396
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 *     """
 *     return Noddsin(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 396, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 396, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 396, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddsin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":392
 * 
 * 
 * cpdef Noddsin make_noddsin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_37make_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_36make_noddsin, "\n    Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_37make_noddsin = {"make_noddsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_37make_noddsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_36make_noddsin};
static PyObject *__pyx_pw_8pysndlib_10generators_37make_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_noddsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 392, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 392, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 392, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_noddsin") < 0)) __PYX_ERR(0, 392, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_noddsin", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 392, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_36make_noddsin(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_36make_noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_noddsin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_noddsin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __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("pysndlib.generators.make_noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":399
 * 
 * 
 * cpdef cython.double noddsin(Noddsin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_39noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddsin(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddsin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":407
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddsin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 407, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":399
 * 
 * 
 * cpdef cython.double noddsin(Noddsin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_39noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_38noddsin, "\n    returns n odd-numbered sines spaced by ratio.\n    \n    :param gen: noddsin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_39noddsin = {"noddsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_39noddsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_38noddsin};
static PyObject *__pyx_pw_8pysndlib_10generators_39noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("noddsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 399, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 399, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "noddsin") < 0)) __PYX_ERR(0, 399, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Noddsin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 399, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("noddsin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 399, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Noddsin, 1, "gen", 0))) __PYX_ERR(0, 399, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_38noddsin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_38noddsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_noddsin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("noddsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_noddsin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 399, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 399, __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("pysndlib.generators.noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":410
 * 
 * 
 * cpdef cython.bint is_noddsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddsin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_41is_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddsin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":417
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Noddsin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Noddsin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":410
 * 
 * 
 * cpdef cython.bint is_noddsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddsin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_41is_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_40is_noddsin, "\n    returns True if gen is an noddsin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_41is_noddsin = {"is_noddsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_41is_noddsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_40is_noddsin};
static PyObject *__pyx_pw_8pysndlib_10generators_41is_noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_noddsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_noddsin") < 0)) __PYX_ERR(0, 410, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_noddsin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 410, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_40is_noddsin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_40is_noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_noddsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_noddsin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 410, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __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("pysndlib.generators.is_noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":424
 * cdef class Noddcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 424, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 424, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 424, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos___init__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Noddcos___init__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":425
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":426
 *     def __init__(self, frequency, ratio=1., n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 426, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":427
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":428
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":424
 * cdef class Noddcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":431
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Noddcos_next(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_n;
  double __pyx_v_den;
  double __pyx_v_fang;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 431, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Noddcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 431, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":432
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         cdef cython.double den = 2 * self.n * sin(self.angle)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":433
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 2 * self.n * sin(self.angle)
 *         cdef cython.double fang = 0.
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":434
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 *         cdef cython.double den = 2 * self.n * sin(self.angle)             # <<<<<<<<<<<<<<
 *         cdef cython.double fang = 0.
 *         self.angle += fm + self.frequency
 */
  __pyx_t_1 = __Pyx_PyInt_From_long((2 * __pyx_v_self->n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 434, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":435
 *         cdef cython.double n = self.n
 *         cdef cython.double den = 2 * self.n * sin(self.angle)
 *         cdef cython.double fang = 0.             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 * 
 */
  __pyx_v_fang = 0.;

  /* "pysndlib/generators.pyx":436
 *         cdef cython.double den = 2 * self.n * sin(self.angle)
 *         cdef cython.double fang = 0.
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 * 
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":438
 *         self.angle += fm + self.frequency
 * 
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             fang = cx % TWO_PI
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 438, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":439
 * 
 *         if fabs(den) < NEARLY_ZERO:
 *             fang = cx % TWO_PI             # <<<<<<<<<<<<<<
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):
 *                 return 1.0
 */
    if (unlikely(__pyx_v_8pysndlib_10generators_TWO_PI == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
      __PYX_ERR(0, 439, __pyx_L1_error)
    }
    __pyx_v_fang = __Pyx_mod_double(__pyx_v_cx, __pyx_v_8pysndlib_10generators_TWO_PI);

    /* "pysndlib/generators.pyx":440
 *         if fabs(den) < NEARLY_ZERO:
 *             fang = cx % TWO_PI
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):             # <<<<<<<<<<<<<<
 *                 return 1.0
 *             else:
 */
    __pyx_t_9 = (__pyx_v_fang < .001);
    if (!__pyx_t_9) {
    } else {
      __pyx_t_8 = __pyx_t_9;
      goto __pyx_L5_bool_binop_done;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyFloat_FromDouble((__pyx_v_fang - (2.0 * __pyx_v_8pysndlib_10generators_PI))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 440, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float__001, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 440, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 440, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __pyx_t_9;
    __pyx_L5_bool_binop_done:;
    if (__pyx_t_8) {

      /* "pysndlib/generators.pyx":441
 *             fang = cx % TWO_PI
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):
 *                 return 1.0             # <<<<<<<<<<<<<<
 *             else:
 *                 return -1.0
 */
      __pyx_r = 1.0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":440
 *         if fabs(den) < NEARLY_ZERO:
 *             fang = cx % TWO_PI
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):             # <<<<<<<<<<<<<<
 *                 return 1.0
 *             else:
 */
    }

    /* "pysndlib/generators.pyx":443
 *                 return 1.0
 *             else:
 *                 return -1.0             # <<<<<<<<<<<<<<
 *         else:
 *             return sin(2 * n * cx) / den
 */
    /*else*/ {
      __pyx_r = -1.0;
      goto __pyx_L0;
    }

    /* "pysndlib/generators.pyx":438
 *         self.angle += fm + self.frequency
 * 
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             fang = cx % TWO_PI
 *             if (fang < .001) or (fabs(fang - (2 * PI)) < .001):
 */
  }

  /* "pysndlib/generators.pyx":445
 *                 return -1.0
 *         else:
 *             return sin(2 * n * cx) / den             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyFloat_FromDouble(((2.0 * __pyx_v_n) * __pyx_v_cx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 445, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":431
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 */

  /* 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("pysndlib.generators.Noddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 431, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 431, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_2next(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_2next(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Noddcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 431, __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("pysndlib.generators.Noddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":447
 *             return sin(2 * n * cx) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 447, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 447, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 447, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 447, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":448
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 448, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":447
 *             return sin(2 * n * cx) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":83
 * # --------------- Noddcos ---------------- #
 * cdef class Noddcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 83, __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("pysndlib.generators.Noddcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 83, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":84
 * cdef class Noddcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 84, __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("pysndlib.generators.Noddcos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddcos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 84, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":85
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 85, __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("pysndlib.generators.Noddcos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 85, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":86
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 86, __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("pysndlib.generators.Noddcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 86, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Noddcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Noddcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Noddcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":451
 * 
 * 
 * cpdef Noddcos make_noddcos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_43make_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_f_8pysndlib_10generators_make_noddcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":455
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 *     """
 *     return Noddcos(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 455, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 455, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 455, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":451
 * 
 * 
 * cpdef Noddcos make_noddcos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_43make_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_42make_noddcos, "\n    Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_43make_noddcos = {"make_noddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_43make_noddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_42make_noddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_43make_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_noddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 451, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 451, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 451, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_noddcos") < 0)) __PYX_ERR(0, 451, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_noddcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 451, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_42make_noddcos(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_42make_noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_noddcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_noddcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __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("pysndlib.generators.make_noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":457
 *     return Noddcos(frequency, ratio, n)
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_45noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddcos(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":465
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_noddcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 465, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":457
 *     return Noddcos(frequency, ratio, n)
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_45noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_44noddcos, "\n    returns n odd-numbered sines spaced by ratio.\n    \n    :param gen: noddcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_45noddcos = {"noddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_45noddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_44noddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_45noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("noddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "noddcos") < 0)) __PYX_ERR(0, 457, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Noddcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("noddcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 457, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Noddcos, 1, "gen", 0))) __PYX_ERR(0, 457, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_44noddcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_44noddcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_noddcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("noddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_noddcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 457, __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("pysndlib.generators.noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":467
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_noddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_47is_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":474
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Noddcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Noddcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":467
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_noddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_47is_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_46is_noddcos, "\n    returns True if gen is an noddcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_47is_noddcos = {"is_noddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_47is_noddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_46is_noddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_47is_noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_noddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 467, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_noddcos") < 0)) __PYX_ERR(0, 467, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_noddcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 467, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_46is_noddcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_46is_noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_noddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_noddcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 467, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 467, __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("pysndlib.generators.is_noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":481
 * cdef class Noddssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); __PYX_ERR(0, 481, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 481, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 481, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb___init__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Noddssb___init__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":482
 * 
 *     def __init__(self, frequency, ratio, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 482, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":483
 *     def __init__(self, frequency, ratio, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 483, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":484
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 484, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":485
 *         self.ratio = ratio
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":481
 * cdef class Noddssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":488
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Noddssb_next(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Noddssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_x;
  double __pyx_v_n;
  double __pyx_v_sinnx;
  double __pyx_v_den;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Noddssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 488, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 488, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":489
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double x = cx - mx
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":490
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double x = cx - mx
 *         cdef cython.double n = self.n
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":491
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double x = cx - mx             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         cdef cython.double sinnx = sin(n * mx)
 */
  __pyx_v_x = (__pyx_v_cx - __pyx_v_mx);

  /* "pysndlib/generators.pyx":492
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double x = cx - mx
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double sinnx = sin(n * mx)
 *         cdef cython.double den = n * sin(mx)
 */
  __pyx_t_7 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_7;

  /* "pysndlib/generators.pyx":493
 *         cdef cython.double x = cx - mx
 *         cdef cython.double n = self.n
 *         cdef cython.double sinnx = sin(n * mx)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = n * sin(mx)
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_mx)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sinnx = __pyx_t_7;

  /* "pysndlib/generators.pyx":494
 *         cdef cython.double n = self.n
 *         cdef cython.double sinnx = sin(n * mx)
 *         cdef cython.double den = n * sin(mx)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 494, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":495
 *         cdef cython.double sinnx = sin(n * mx)
 *         cdef cython.double den = n * sin(mx)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) <  NEARLY_ZERO:
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":496
 *         cdef cython.double den = n * sin(mx)
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here
 *                 return -1
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":497
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here             # <<<<<<<<<<<<<<
 *                 return -1
 * #             else: # removed seemed like it causing large spikes
 */
    if (unlikely(__pyx_v_8pysndlib_10generators_TWO_PI == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
      __PYX_ERR(0, 497, __pyx_L1_error)
    }
    __pyx_t_8 = (__Pyx_mod_double(__pyx_v_mx, __pyx_v_8pysndlib_10generators_TWO_PI) < .1);
    if (__pyx_t_8) {

      /* "pysndlib/generators.pyx":498
 *         if fabs(den) <  NEARLY_ZERO:
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here
 *                 return -1             # <<<<<<<<<<<<<<
 * #             else: # removed seemed like it causing large spikes
 * #                 return 1
 */
      __pyx_r = -1.0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":497
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here             # <<<<<<<<<<<<<<
 *                 return -1
 * #             else: # removed seemed like it causing large spikes
 */
    }

    /* "pysndlib/generators.pyx":496
 *         cdef cython.double den = n * sin(mx)
 *         self.angle += fm + self.frequency
 *         if fabs(den) <  NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             if (mx % TWO_PI) < .1: #TODO something is wrong here
 *                 return -1
 */
  }

  /* "pysndlib/generators.pyx":501
 * #             else: # removed seemed like it causing large spikes
 * #                 return 1
 *         return (sin(x) * ((sinnx*sinnx) / den)) - ((cos(x) * (sin(2 * n * mx) / (2 * den))))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = (__pyx_v_sinnx * __pyx_v_sinnx);
  if (unlikely(__pyx_v_den == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 501, __pyx_L1_error)
  }
  __pyx_t_2 = PyFloat_FromDouble((__pyx_t_7 / __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(((2.0 * __pyx_v_n) * __pyx_v_mx)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble((2.0 * __pyx_v_den)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 501, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":488
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 488, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 488, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 488, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 488, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_2next(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_2next(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Noddssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 488, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 488, __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("pysndlib.generators.Noddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":503
 *         return (sin(x) * ((sinnx*sinnx) / den)) - ((cos(x) * (sin(2 * n * mx) / (2 * den))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 503, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 503, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 503, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":504
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 504, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":503
 *         return (sin(x) * ((sinnx*sinnx) / den)) - ((cos(x) * (sin(2 * n * mx) / (2 * den))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":94
 * # --------------- noddssb ---------------- #
 * cdef class Noddssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 94, __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("pysndlib.generators.Noddssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 94, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":95
 * cdef class Noddssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 95, __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("pysndlib.generators.Noddssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 95, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":96
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 96, __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("pysndlib.generators.Noddssb.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 96, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":97
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 97, __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("pysndlib.generators.Noddssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Noddssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Noddssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Noddssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 97, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Noddssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Noddssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Noddssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Noddssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Noddssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Noddssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Noddssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":507
 * 
 * 
 * cpdef Noddssb make_noddssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_49make_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_f_8pysndlib_10generators_make_noddssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_noddssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":511
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 *     """
 *     return Noddssb(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 511, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 511, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 511, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":507
 * 
 * 
 * cpdef Noddssb make_noddssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_49make_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_48make_noddssb, "\n    Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_49make_noddssb = {"make_noddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_49make_noddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_48make_noddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_49make_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_noddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 507, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 507, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 507, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_noddssb") < 0)) __PYX_ERR(0, 507, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_noddssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 507, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_48make_noddssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_48make_noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_noddssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_noddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_noddssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 507, __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("pysndlib.generators.make_noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":514
 * 
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns n sinusoids from frequency spaced by 2 * ratio * frequency.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_51noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_noddssb(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":522
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Noddssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 522, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":514
 * 
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns n sinusoids from frequency spaced by 2 * ratio * frequency.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_51noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_50noddssb, "\n    Returns n sinusoids from frequency spaced by 2 * ratio * frequency.\n    \n    :param gen: noddssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_51noddssb = {"noddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_51noddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_50noddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_51noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("noddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 514, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 514, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "noddssb") < 0)) __PYX_ERR(0, 514, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Noddssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 514, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("noddssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 514, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Noddssb, 1, "gen", 0))) __PYX_ERR(0, 514, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_50noddssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_50noddssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_noddssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("noddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_noddssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 514, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __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("pysndlib.generators.noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":525
 * 
 * 
 * cpdef cython.bint is_noddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_53is_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_noddssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":532
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Noddssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- ncos2 ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Noddssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":525
 * 
 * 
 * cpdef cython.bint is_noddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_53is_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_52is_noddssb, "\n    returns True if gen is an noddssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_53is_noddssb = {"is_noddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_53is_noddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_52is_noddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_53is_noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_noddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_noddssb") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_noddssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_52is_noddssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_52is_noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_noddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_noddssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __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("pysndlib.generators.is_noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":539
 * cdef class Ncos2(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos2_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos2_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 539, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 539, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 539, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 539, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2___init__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Ncos2___init__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":540
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 540, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 540, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":541
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 541, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":542
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":539
 * cdef class Ncos2(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":545
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos2_next(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos2_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_v_val;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Ncos2_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 545, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 545, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":546
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double den = sin(.5 * x)
 *         cdef cython.double n = self.n
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":547
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":548
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_6;

  /* "pysndlib/generators.pyx":549
 *         cdef cython.double den = sin(.5 * x)
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":550
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 550, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":551
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0             # <<<<<<<<<<<<<<
 *         else:
 *             val: cython.double = sin(0.5 * (n + 1) * x) / ((n + 1) * den)
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":550
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":553
 *             return 1.0
 *         else:
 *             val: cython.double = sin(0.5 * (n + 1) * x) / ((n + 1) * den)             # <<<<<<<<<<<<<<
 *             return val * val
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble(((0.5 * (__pyx_v_n + 1.0)) * __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_n + 1.0) * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 553, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_val = __pyx_t_7;

    /* "pysndlib/generators.pyx":554
 *         else:
 *             val: cython.double = sin(0.5 * (n + 1) * x) / ((n + 1) * den)
 *             return val * val             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
    __pyx_r = (__pyx_v_val * __pyx_v_val);
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":545
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos2_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos2_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 545, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 545, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 545, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 545, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_2next(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_2next(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Ncos2->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 545, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __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("pysndlib.generators.Ncos2.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":556
 *             return val * val
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 556, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 556, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 556, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 556, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_4__call__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_4__call__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":557
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 557, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":556
 *             return val * val
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":104
 * # --------------- ncos2 ---------------- #
 * cdef class Ncos2(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 104, __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("pysndlib.generators.Ncos2.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos2_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 104, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":105
 * cdef class Ncos2(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_1n___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 105, __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("pysndlib.generators.Ncos2.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos2_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos2_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos2_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 105, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":106
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 106, __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("pysndlib.generators.Ncos2.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos2_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos2_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos2_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 106, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos2_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos2_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Ncos2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Ncos2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos2_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos2_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos2_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos2_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos2_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos2__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ncos2.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":560
 * 
 * 
 * cpdef Ncos2 make_ncos2(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_55make_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_f_8pysndlib_10generators_make_ncos2(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos2 *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos2", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":564
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 *     """
 *     return Ncos2(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 564, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 564, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":560
 * 
 * 
 * cpdef Ncos2 make_ncos2(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_55make_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_54make_ncos2, "\n    Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_55make_ncos2 = {"make_ncos2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_55make_ncos2, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_54make_ncos2};
static PyObject *__pyx_pw_8pysndlib_10generators_55make_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_ncos2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 560, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 560, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_ncos2") < 0)) __PYX_ERR(0, 560, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_ncos2", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 560, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_54make_ncos2(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_54make_ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_ncos2 __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos2", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_ncos2(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 560, __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("pysndlib.generators.make_ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":567
 * 
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_57ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos2(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos2 *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":575
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 575, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":567
 * 
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_57ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_56ncos2, "\n    returns n cosines from frequency spaced by frequency * ratio.\n        \n    :param gen: ncos2 gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_57ncos2 = {"ncos2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_57ncos2, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_56ncos2};
static PyObject *__pyx_pw_8pysndlib_10generators_57ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncos2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ncos2") < 0)) __PYX_ERR(0, 567, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncos2", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 567, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Ncos2, 1, "gen", 0))) __PYX_ERR(0, 567, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_56ncos2(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_56ncos2(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_ncos2 __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncos2", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_ncos2(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 567, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 567, __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("pysndlib.generators.ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":578
 * 
 * 
 * cpdef cython.bint is_ncos2(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos2
 */

static PyObject *__pyx_pw_8pysndlib_10generators_59is_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos2(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":585
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Ncos2)             # <<<<<<<<<<<<<<
 * 
 * # --------------- ncos4 ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Ncos2); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":578
 * 
 * 
 * cpdef cython.bint is_ncos2(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos2
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_59is_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_58is_ncos2, "\n    returns True if gen is an ncos2\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_59is_ncos2 = {"is_ncos2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_59is_ncos2, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_58is_ncos2};
static PyObject *__pyx_pw_8pysndlib_10generators_59is_ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ncos2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 578, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_ncos2") < 0)) __PYX_ERR(0, 578, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_ncos2", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 578, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_58is_ncos2(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_58is_ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ncos2", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_ncos2(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 578, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __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("pysndlib.generators.is_ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":591
 * cdef class Ncos4(Ncos2):
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos4_next(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos4_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_val;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Ncos4_1next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 591, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":592
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double val = super(Ncos4, self).next(fm)             # <<<<<<<<<<<<<<
 *         return val * val
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4);
  __Pyx_GIVEREF((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4))) __PYX_ERR(0, 592, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self))) __PYX_ERR(0, 592, __pyx_L1_error);
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_next); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 592, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_val = __pyx_t_7;

  /* "pysndlib/generators.pyx":593
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = (__pyx_v_val * __pyx_v_val);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":591
 * cdef class Ncos4(Ncos2):
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val
 */

  /* 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("pysndlib.generators.Ncos4.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos4_1next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos4_1next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_1next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 591, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 591, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos4.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos4_next(((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_next(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Ncos4->__pyx_base.__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 591, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 591, __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("pysndlib.generators.Ncos4.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos4_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos4_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos4_2__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->__pyx_base.angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->__pyx_base.frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->__pyx_base.n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Ncos4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Ncos4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Ncos4.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos4_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos4_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos4_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos4.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos4_4__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos4_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos4__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ncos4.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":596
 * 
 * 
 * cpdef Ncos4 make_ncos4(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 */

static PyObject *__pyx_pw_8pysndlib_10generators_61make_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_f_8pysndlib_10generators_make_ncos4(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos4 *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos4", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":600
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 *     """
 *     return Ncos4(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 600, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 600, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":596
 * 
 * 
 * cpdef Ncos4 make_ncos4(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_61make_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_60make_ncos4, "\n    Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_61make_ncos4 = {"make_ncos4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_61make_ncos4, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_60make_ncos4};
static PyObject *__pyx_pw_8pysndlib_10generators_61make_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_ncos4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 596, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_ncos4") < 0)) __PYX_ERR(0, 596, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_ncos4", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 596, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_60make_ncos4(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_60make_ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_ncos4 __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos4", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_ncos4(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __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("pysndlib.generators.make_ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":603
 * 
 * 
 * cpdef cython.double ncos4(Ncos4 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_63ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos4(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos4 *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":611
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ncos4 *)__pyx_v_gen->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 611, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":603
 * 
 * 
 * cpdef cython.double ncos4(Ncos4 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_63ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_62ncos4, "\n    returns n cosines from frequency spaced by frequency * ratio.\n    \n    :param gen: ncos4 gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_63ncos4 = {"ncos4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_63ncos4, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_62ncos4};
static PyObject *__pyx_pw_8pysndlib_10generators_63ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncos4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ncos4") < 0)) __PYX_ERR(0, 603, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncos4", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 603, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Ncos4, 1, "gen", 0))) __PYX_ERR(0, 603, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_62ncos4(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_62ncos4(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_ncos4 __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncos4", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_ncos4(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 603, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __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("pysndlib.generators.ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":614
 * 
 * 
 * cpdef cython.bint is_ncos4(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos4
 */

static PyObject *__pyx_pw_8pysndlib_10generators_65is_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos4(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":621
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Ncos4)             # <<<<<<<<<<<<<<
 * 
 * # --------------- npcos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Ncos4); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":614
 * 
 * 
 * cpdef cython.bint is_ncos4(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos4
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_65is_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_64is_ncos4, "\n    returns True if gen is an ncos4\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_65is_ncos4 = {"is_ncos4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_65is_ncos4, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_64is_ncos4};
static PyObject *__pyx_pw_8pysndlib_10generators_65is_ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ncos4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 614, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_ncos4") < 0)) __PYX_ERR(0, 614, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_ncos4", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 614, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_64is_ncos4(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_64is_ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ncos4", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_ncos4(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 614, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __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("pysndlib.generators.is_ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":627
 * cdef class Npcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Npcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Npcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 627, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 627, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 627, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 627, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 627, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos___init__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Npcos___init__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":628
 * 
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 628, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 628, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":629
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 629, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":630
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":627
 * cdef class Npcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":632
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Npcos_next(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Npcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_result;
  double __pyx_v_result1;
  double __pyx_v_result2;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_v_n1;
  PyObject *__pyx_v_val = NULL;
  double __pyx_v_p2n2;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Npcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 632, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 632, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 632, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":633
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double result  = 0.0             # <<<<<<<<<<<<<<
 *         cdef cython.double result1  = 0.0
 *         cdef cython.double result2  = 0.0
 */
  __pyx_v_result = 0.0;

  /* "pysndlib/generators.pyx":634
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0             # <<<<<<<<<<<<<<
 *         cdef cython.double result2  = 0.0
 *         cdef cython.double den  = sin(.5 * self.angle)
 */
  __pyx_v_result1 = 0.0;

  /* "pysndlib/generators.pyx":635
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 *         cdef cython.double result2  = 0.0             # <<<<<<<<<<<<<<
 *         cdef cython.double den  = sin(.5 * self.angle)
 *         cdef cython.double n = self.n
 */
  __pyx_v_result2 = 0.0;

  /* "pysndlib/generators.pyx":636
 *         cdef cython.double result1  = 0.0
 *         cdef cython.double result2  = 0.0
 *         cdef cython.double den  = sin(.5 * self.angle)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         if fabs(den) < NEARLY_ZERO:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_self->angle)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 636, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":637
 *         cdef cython.double result2  = 0.0
 *         cdef cython.double den  = sin(.5 * self.angle)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             result = 1.0
 */
  __pyx_t_7 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_7;

  /* "pysndlib/generators.pyx":638
 *         cdef cython.double den  = sin(.5 * self.angle)
 *         cdef cython.double n = self.n
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             result = 1.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":639
 *         cdef cython.double n = self.n
 *         if fabs(den) < NEARLY_ZERO:
 *             result = 1.0             # <<<<<<<<<<<<<<
 *         else:
 *             n1 = n + 1
 */
    __pyx_v_result = 1.0;

    /* "pysndlib/generators.pyx":638
 *         cdef cython.double den  = sin(.5 * self.angle)
 *         cdef cython.double n = self.n
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             result = 1.0
 *         else:
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":641
 *             result = 1.0
 *         else:
 *             n1 = n + 1             # <<<<<<<<<<<<<<
 *             val = sin(.5 * n1 * self.angle) / (n1 * den)
 *             result1 = val * val
 */
  /*else*/ {
    __pyx_v_n1 = (__pyx_v_n + 1.0);

    /* "pysndlib/generators.pyx":642
 *         else:
 *             n1 = n + 1
 *             val = sin(.5 * n1 * self.angle) / (n1 * den)             # <<<<<<<<<<<<<<
 *             result1 = val * val
 *             p2n2 = (2 * n) + 2
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble(((.5 * __pyx_v_n1) * __pyx_v_self->angle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_n1 * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_val = __pyx_t_1;
    __pyx_t_1 = 0;

    /* "pysndlib/generators.pyx":643
 *             n1 = n + 1
 *             val = sin(.5 * n1 * self.angle) / (n1 * den)
 *             result1 = val * val             # <<<<<<<<<<<<<<
 *             p2n2 = (2 * n) + 2
 *             val = sin(.5 * p2n2 * self.angle) / (p2n2 * den)
 */
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_val, __pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 643, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_result1 = __pyx_t_7;

    /* "pysndlib/generators.pyx":644
 *             val = sin(.5 * n1 * self.angle) / (n1 * den)
 *             result1 = val * val
 *             p2n2 = (2 * n) + 2             # <<<<<<<<<<<<<<
 *             val = sin(.5 * p2n2 * self.angle) / (p2n2 * den)
 *             result2 = val * val
 */
    __pyx_v_p2n2 = ((2.0 * __pyx_v_n) + 2.0);

    /* "pysndlib/generators.pyx":645
 *             result1 = val * val
 *             p2n2 = (2 * n) + 2
 *             val = sin(.5 * p2n2 * self.angle) / (p2n2 * den)             # <<<<<<<<<<<<<<
 *             result2 = val * val
 *             result = (2 * result2) - result1
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyFloat_FromDouble(((.5 * __pyx_v_p2n2) * __pyx_v_self->angle)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 645, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_p2n2 * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_val, __pyx_t_4);
    __pyx_t_4 = 0;

    /* "pysndlib/generators.pyx":646
 *             p2n2 = (2 * n) + 2
 *             val = sin(.5 * p2n2 * self.angle) / (p2n2 * den)
 *             result2 = val * val             # <<<<<<<<<<<<<<
 *             result = (2 * result2) - result1
 *         self.angle += fm + self.frequency
 */
    __pyx_t_4 = PyNumber_Multiply(__pyx_v_val, __pyx_v_val); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 646, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 646, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_result2 = __pyx_t_7;

    /* "pysndlib/generators.pyx":647
 *             val = sin(.5 * p2n2 * self.angle) / (p2n2 * den)
 *             result2 = val * val
 *             result = (2 * result2) - result1             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return result
 */
    __pyx_v_result = ((2.0 * __pyx_v_result2) - __pyx_v_result1);
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":648
 *             result2 = val * val
 *             result = (2 * result2) - result1
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":649
 *             result = (2 * result2) - result1
 *         self.angle += fm + self.frequency
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":632
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Npcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_val);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Npcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Npcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 632, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 632, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 632, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 632, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_2next(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_2next(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Npcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 632, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 632, __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("pysndlib.generators.Npcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":651
 *         return result
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 651, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 651, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 651, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 651, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":652
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 652, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":651
 *         return result
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":120
 * # --------------- npcos ---------------- #
 * cdef class Npcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 120, __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("pysndlib.generators.Npcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Npcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Npcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Npcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 120, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":121
 * cdef class Npcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 121, __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("pysndlib.generators.Npcos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Npcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Npcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Npcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 121, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npcos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":122
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 122, __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("pysndlib.generators.Npcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Npcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Npcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Npcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 122, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Npcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Npcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Npcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Npcos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Npcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Npcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Npcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Npcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Npcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Npcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":655
 * 
 * 
 * cpdef Npcos make_npcos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an npcos (Poussin kernel) generator that produces
 */

static PyObject *__pyx_pw_8pysndlib_10generators_67make_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_f_8pysndlib_10generators_make_npcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":660
 *     n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.
 *     """
 *     return Npcos(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 660, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 660, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":655
 * 
 * 
 * cpdef Npcos make_npcos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an npcos (Poussin kernel) generator that produces
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_67make_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_66make_npcos, "\n    Creates an npcos (Poussin kernel) generator that produces \n    n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_67make_npcos = {"make_npcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_67make_npcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_66make_npcos};
static PyObject *__pyx_pw_8pysndlib_10generators_67make_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_npcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 655, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 655, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_npcos") < 0)) __PYX_ERR(0, 655, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_npcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 655, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_66make_npcos(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_66make_npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_npcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_npcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 655, __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("pysndlib.generators.make_npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":663
 * 
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_69npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_npcos(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":672
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_npcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 672, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":663
 * 
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_69npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_68npcos, "\n    returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.\n    \n    :param gen: npcos gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_69npcos = {"npcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_69npcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_68npcos};
static PyObject *__pyx_pw_8pysndlib_10generators_69npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("npcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "npcos") < 0)) __PYX_ERR(0, 663, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Npcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("npcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 663, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Npcos, 1, "gen", 0))) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_68npcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_68npcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_npcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("npcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_npcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 663, __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("pysndlib.generators.npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":674
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_71is_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":681
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Npcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Npcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":674
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_71is_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_70is_npcos, "\n    returns True if gen is an npcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_71is_npcos = {"is_npcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_71is_npcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_70is_npcos};
static PyObject *__pyx_pw_8pysndlib_10generators_71is_npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_npcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 674, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_npcos") < 0)) __PYX_ERR(0, 674, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_npcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 674, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_70is_npcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_70is_npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_npcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_npcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 674, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __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("pysndlib.generators.is_npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":689
 * cdef class Ncos5(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos5_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos5_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 689, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 689, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 689, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 689, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 689, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5___init__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Ncos5___init__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":690
 * 
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 690, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 690, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":691
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 691, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":692
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":689
 * cdef class Ncos5(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":695
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Ncos5_next(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ncos5_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 695, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Ncos5_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 695, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":696
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         x: cython.double = self.angle             # <<<<<<<<<<<<<<
 *         den: cython.double = tan(.5 * x)
 *         n: cython.double = self.n
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":697
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)             # <<<<<<<<<<<<<<
 *         n: cython.double = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":698
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 *         n: cython.double = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_7 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_7;

  /* "pysndlib/generators.pyx":699
 *         den: cython.double = tan(.5 * x)
 *         n: cython.double = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":700
 *         n: cython.double = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":701
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0             # <<<<<<<<<<<<<<
 *         else:
 *             return ((sin(n*x) / (2 * den)) - .5) / (n - .5)
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":700
 *         n: cython.double = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":703
 *             return 1.0
 *         else:
 *             return ((sin(n*x) / (2 * den)) - .5) / (n - .5)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 703, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble((2.0 * __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float__5, .5, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_n - .5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 703, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":695
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos5_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos5_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 695, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 695, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_2next(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_2next(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Ncos5->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 695, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 695, __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("pysndlib.generators.Ncos5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":705
 *             return ((sin(n*x) / (2 * den)) - .5) / (n - .5)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 705, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 705, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 705, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 705, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_4__call__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_4__call__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":706
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ncos5 *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 706, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":705
 *             return ((sin(n*x) / (2 * den)) - .5) / (n - .5)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":129
 * # --------------- ncos5 ---------------- #
 * cdef class Ncos5(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 129, __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("pysndlib.generators.Ncos5.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos5_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 129, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":130
 * cdef class Ncos5(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_1n___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 130, __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("pysndlib.generators.Ncos5.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos5_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos5_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos5_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 130, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":131
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double ncos5(Ncos5 gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ncos5_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ncos5_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ncos5_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 131, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos5_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos5_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Ncos5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Ncos5); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ncos5_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos5_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ncos5_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ncos5_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ncos5_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos5__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ncos5.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":709
 * 
 * 
 * cpdef Ncos5 make_ncos5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_73make_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_f_8pysndlib_10generators_make_ncos5(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ncos5 *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos5", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":714
 *     All are equal amplitude except the first and last at half amp.
 *     """
 *     return Ncos5(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 714, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 714, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos5), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":709
 * 
 * 
 * cpdef Ncos5 make_ncos5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_73make_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_72make_ncos5, "\n    Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'. \n    All are equal amplitude except the first and last at half amp.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_73make_ncos5 = {"make_ncos5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_73make_ncos5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_72make_ncos5};
static PyObject *__pyx_pw_8pysndlib_10generators_73make_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_ncos5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 709, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 709, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_ncos5") < 0)) __PYX_ERR(0, 709, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_ncos5", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 709, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_72make_ncos5(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_72make_ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_ncos5 __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ncos5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_ncos5(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 709, __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("pysndlib.generators.make_ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":717
 * 
 * 
 * cpdef cython.double ncos5(gen: Ncos5, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency. All are equal amplitude except the first and last at half amp
 */

static PyObject *__pyx_pw_8pysndlib_10generators_75ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_ncos5(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos5 *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":726
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_ncos5(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ncos5 *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 726, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":717
 * 
 * 
 * cpdef cython.double ncos5(gen: Ncos5, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency. All are equal amplitude except the first and last at half amp
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_75ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_74ncos5, "\n    returns n cosines spaced by frequency. All are equal amplitude except the first and last at half amp\n    \n    :param gen: ncos5 gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_75ncos5 = {"ncos5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_75ncos5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_74ncos5};
static PyObject *__pyx_pw_8pysndlib_10generators_75ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ncos5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 717, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 717, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ncos5") < 0)) __PYX_ERR(0, 717, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 717, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ncos5", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 717, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Ncos5, 0, "gen", 0))) __PYX_ERR(0, 717, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_74ncos5(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_74ncos5(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_ncos5 __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ncos5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_ncos5(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 717, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __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("pysndlib.generators.ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":728
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ncos5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos5
 */

static PyObject *__pyx_pw_8pysndlib_10generators_77is_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ncos5(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":735
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Ncos5)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Ncos5); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":728
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ncos5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos5
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_77is_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_76is_ncos5, "\n    returns True if gen is an ncos5\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_77is_ncos5 = {"is_ncos5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_77is_ncos5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_76is_ncos5};
static PyObject *__pyx_pw_8pysndlib_10generators_77is_ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ncos5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 728, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_ncos5") < 0)) __PYX_ERR(0, 728, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_ncos5", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 728, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_76is_ncos5(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_76is_ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ncos5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_ncos5(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 728, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 728, __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("pysndlib.generators.is_ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_79find_nsin5_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_79find_nsin5_max = {"find_nsin5_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_79find_nsin5_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_79find_nsin5_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_nsin5_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 740, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_nsin5_max") < 0)) __PYX_ERR(0, 740, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_nsin5_max", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 740, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_78find_nsin5_max(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":741
 * 
 * def find_nsin5_max(n):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14find_nsin5_max_1ns(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14find_nsin5_max_1ns = {"ns", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14find_nsin5_max_1ns, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14find_nsin5_max_1ns(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_x = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ns (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 741, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 741, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("ns", 1, 2, 2, 1); __PYX_ERR(0, 741, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ns") < 0)) __PYX_ERR(0, 741, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_x = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ns", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 741, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max.ns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(__pyx_self, __pyx_v_x, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_x, PyObject *__pyx_v_n) {
  PyObject *__pyx_v_den = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ns", 1);

  /* "pysndlib/generators.pyx":742
 * def find_nsin5_max(n):
 *     def ns(x, n):
 *             den = tan(.5 * x)             # <<<<<<<<<<<<<<
 *             if fabs(den) < NEARLY_ZERO:
 *                 return 0.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_float__5, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 742, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_v_den = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":743
 *     def ns(x, n):
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *                 return 0.0
 *             else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_den};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":744
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:
 *                 return 0.0             # <<<<<<<<<<<<<<
 *             else:
 *                 return (1.0 - cos(n * x)) / den
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_r = __pyx_float_0_0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":743
 *     def ns(x, n):
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *                 return 0.0
 *             else:
 */
  }

  /* "pysndlib/generators.pyx":746
 *                 return 0.0
 *             else:
 *                 return (1.0 - cos(n * x)) / den             # <<<<<<<<<<<<<<
 * 
 *     def find_mid_max(n, lo, hi):
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_n, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_5 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_5 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
      __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_den); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":741
 * 
 * def find_nsin5_max(n):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max.ns", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_den);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":748
 *                 return (1.0 - cos(n * x)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14find_nsin5_max_3find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14find_nsin5_max_3find_mid_max = {"find_mid_max", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14find_nsin5_max_3find_mid_max, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14find_nsin5_max_3find_mid_max(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_lo = 0;
  PyObject *__pyx_v_hi = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_mid_max (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_lo,&__pyx_n_s_hi,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 748, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_lo)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 748, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, 1); __PYX_ERR(0, 748, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hi)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 748, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, 2); __PYX_ERR(0, 748, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "find_mid_max") < 0)) __PYX_ERR(0, 748, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v_n = values[0];
    __pyx_v_lo = values[1];
    __pyx_v_hi = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_mid_max", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 748, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(__pyx_self, __pyx_v_n, __pyx_v_lo, __pyx_v_hi);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(PyObject *__pyx_self, PyObject *__pyx_v_n, PyObject *__pyx_v_lo, PyObject *__pyx_v_hi) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *__pyx_cur_scope;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *__pyx_outer_scope;
  PyObject *__pyx_v_mid = NULL;
  PyObject *__pyx_v_ylo = NULL;
  PyObject *__pyx_v_yhi = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("find_mid_max", 1);
  __pyx_outer_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "pysndlib/generators.pyx":749
 * 
 *     def find_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2             # <<<<<<<<<<<<<<
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 */
  __pyx_t_1 = PyNumber_Add(__pyx_v_lo, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_1, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_mid = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":750
 *     def find_mid_max(n, lo, hi):
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)             # <<<<<<<<<<<<<<
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < 1e-9:
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 750, __pyx_L1_error) }
  __pyx_t_2 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_lo, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_ylo = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":751
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)             # <<<<<<<<<<<<<<
 *         if fabs(ylo - yhi) < 1e-9:
 *             return ns(mid,n)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 751, __pyx_L1_error) }
  __pyx_t_2 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_hi, __pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_yhi = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":752
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < 1e-9:             # <<<<<<<<<<<<<<
 *             return ns(mid,n)
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_fabs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_ylo, __pyx_v_yhi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 752, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_1eneg_9, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 752, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":753
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < 1e-9:
 *             return ns(mid,n)             # <<<<<<<<<<<<<<
 *         else:
 *             if ylo > yhi:
 */
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(!__pyx_cur_scope->__pyx_v_ns)) { __Pyx_RaiseClosureNameError("ns"); __PYX_ERR(0, 753, __pyx_L1_error) }
    __pyx_t_1 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_ns(__pyx_cur_scope->__pyx_v_ns, __pyx_v_mid, __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 753, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":752
 *         ylo = ns(lo, n)
 *         yhi = ns(hi, n)
 *         if fabs(ylo - yhi) < 1e-9:             # <<<<<<<<<<<<<<
 *             return ns(mid,n)
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":755
 *             return ns(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
  /*else*/ {
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_ylo, __pyx_v_yhi, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 755, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_6) {

      /* "pysndlib/generators.pyx":756
 *         else:
 *             if ylo > yhi:
 *                 return find_mid_max(n, lo, mid)             # <<<<<<<<<<<<<<
 *             else:
 *                 return find_mid_max(n, mid, hi)
 */
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 756, __pyx_L1_error) }
      __pyx_t_1 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_lo, __pyx_v_mid); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;

      /* "pysndlib/generators.pyx":755
 *             return ns(mid,n)
 *         else:
 *             if ylo > yhi:             # <<<<<<<<<<<<<<
 *                 return find_mid_max(n, lo, mid)
 *             else:
 */
    }

    /* "pysndlib/generators.pyx":758
 *                 return find_mid_max(n, lo, mid)
 *             else:
 *                 return find_mid_max(n, mid, hi)             # <<<<<<<<<<<<<<
 * 
 *     return find_mid_max(n, 0.0, PI / (n + .5))
 */
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      if (unlikely(!__pyx_cur_scope->__pyx_v_find_mid_max)) { __Pyx_RaiseClosureNameError("find_mid_max"); __PYX_ERR(0, 758, __pyx_L1_error) }
      __pyx_t_1 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_v_mid, __pyx_v_hi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 758, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_r = __pyx_t_1;
      __pyx_t_1 = 0;
      goto __pyx_L0;
    }
  }

  /* "pysndlib/generators.pyx":748
 *                 return (1.0 - cos(n * x)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max.find_mid_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mid);
  __Pyx_XDECREF(__pyx_v_ylo);
  __Pyx_XDECREF(__pyx_v_yhi);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */

static PyObject *__pyx_pf_8pysndlib_10generators_78find_nsin5_max(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *__pyx_cur_scope;
  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("find_nsin5_max", 0);
  __pyx_cur_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 740, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }

  /* "pysndlib/generators.pyx":741
 * 
 * def find_nsin5_max(n):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14find_nsin5_max_1ns, 0, __pyx_n_s_find_nsin5_max_locals_ns, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__15)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_ns = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":748
 *                 return (1.0 - cos(n * x)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14find_nsin5_max_3find_mid_max, 0, __pyx_n_s_find_nsin5_max_locals_find_mid_m, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_cur_scope->__pyx_v_find_mid_max = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":760
 *                 return find_mid_max(n, mid, hi)
 * 
 *     return find_mid_max(n, 0.0, PI / (n + .5))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyFloat_AddObjC(__pyx_v_n, __pyx_float__5, .5, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_pf_8pysndlib_10generators_14find_nsin5_max_2find_mid_max(__pyx_cur_scope->__pyx_v_find_mid_max, __pyx_v_n, __pyx_float_0_0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.find_nsin5_max", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":765
 * cdef class Nsin5(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = max(2, n)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nsin5_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nsin5_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 765, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 765, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 765, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5___init__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Nsin5___init__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  long __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":766
 * 
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = max(2, n)
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 766, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 766, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":767
 *     def __init__(self, frequency, n):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = max(2, n)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.norm = find_nsin5_max(self.n)
 */
  __Pyx_INCREF(__pyx_v_n);
  __pyx_t_3 = __pyx_v_n;
  __pyx_t_4 = 2;
  __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_8) {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_5 = __pyx_t_3;
  } else {
    __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 767, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __pyx_t_7;
    __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":768
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = max(2, n)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.norm = find_nsin5_max(self.n)
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":769
 *         self.n = max(2, n)
 *         self.angle = 0.0
 *         self.norm = find_nsin5_max(self.n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_find_nsin5_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 769, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 769, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":765
 * cdef class Nsin5(CLMGenerator):
 * 
 *     def __init__(self, frequency, n):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = max(2, n)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":772
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Nsin5_next(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nsin5_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_den;
  double __pyx_v_n;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 772, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nsin5_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 772, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 772, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 772, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":773
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double den = tan(.5 * x)
 *         cdef cython.double n = self.n
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":774
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)             # <<<<<<<<<<<<<<
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 774, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":775
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 *         cdef cython.double n = self.n             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_7 = __pyx_v_self->n;
  __pyx_v_n = __pyx_t_7;

  /* "pysndlib/generators.pyx":776
 *         cdef cython.double den = tan(.5 * x)
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":777
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":778
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         else:
 *             return (1.0 - cos(n*x)) / (den * self.norm)
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":777
 *         cdef cython.double n = self.n
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":780
 *             return 0.0
 *         else:
 *             return (1.0 - cos(n*x)) / (den * self.norm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_n * __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyFloat_FromDouble((__pyx_v_den * __pyx_v_self->norm)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 780, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":772
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nsin5_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nsin5_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 772, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 772, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 772, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 772, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_2next(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_2next(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nsin5->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 772, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 772, __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("pysndlib.generators.Nsin5.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":783
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 783, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 783, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 783, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_4__call__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":784
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nsin5 *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 784, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":783
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":140
 * 
 * cdef class Nsin5(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 140, __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("pysndlib.generators.Nsin5.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nsin5_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 140, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":141
 * cdef class Nsin5(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 141, __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("pysndlib.generators.Nsin5.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nsin5_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nsin5_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nsin5_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 141, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":142
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 142, __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("pysndlib.generators.Nsin5.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nsin5_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nsin5_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nsin5_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 142, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":143
 *     cdef public cython.double n
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 143, __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("pysndlib.generators.Nsin5.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nsin5_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nsin5_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nsin5_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 143, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nsin5_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nsin5_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nsin5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_64927267);
    __Pyx_GIVEREF(__pyx_int_64927267);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_64927267)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, None), state
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nsin5); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_64927267);
    __Pyx_GIVEREF(__pyx_int_64927267);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_64927267)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nsin5_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nsin5_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nsin5_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nsin5_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nsin5_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nsin5__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nsin5.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":787
 * 
 * 
 * cpdef Nsin5 make_nsin5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_81make_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_f_8pysndlib_10generators_make_nsin5(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nsin5 *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nsin5", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":792
 *     All are equal amplitude except last at half amp.
 *     """
 *     return Nsin5(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 792, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 792, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsin5), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":787
 * 
 * 
 * cpdef Nsin5 make_nsin5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_81make_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_80make_nsin5, "\n    Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'. \n    All are equal amplitude except last at half amp.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_81make_nsin5 = {"make_nsin5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_81make_nsin5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_80make_nsin5};
static PyObject *__pyx_pw_8pysndlib_10generators_81make_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nsin5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 787, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nsin5") < 0)) __PYX_ERR(0, 787, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nsin5", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 787, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_80make_nsin5(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_80make_nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nsin5 __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nsin5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nsin5(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 787, __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("pysndlib.generators.make_nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":794
 *     return Nsin5(frequency, n)
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: noddssb gen
 */

static PyObject *__pyx_pw_8pysndlib_10generators_83nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nsin5(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsin5 *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":801
 *     """
 * 
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nsin5(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nsin5 *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":794
 *     return Nsin5(frequency, n)
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: noddssb gen
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_83nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_82nsin5, "\n    :param gen: noddssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_83nsin5 = {"nsin5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_83nsin5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_82nsin5};
static PyObject *__pyx_pw_8pysndlib_10generators_83nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nsin5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 794, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 794, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nsin5") < 0)) __PYX_ERR(0, 794, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 794, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nsin5", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 794, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nsin5, 1, "gen", 0))) __PYX_ERR(0, 794, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_82nsin5(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_82nsin5(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nsin5 __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nsin5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nsin5(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 794, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 794, __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("pysndlib.generators.nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":803
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsin5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsin5
 */

static PyObject *__pyx_pw_8pysndlib_10generators_85is_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nsin5(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":810
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nsin5)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nsin5); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":803
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsin5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsin5
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_85is_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_84is_nsin5, "\n    returns True if gen is an nsin5\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_85is_nsin5 = {"is_nsin5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_85is_nsin5, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_84is_nsin5};
static PyObject *__pyx_pw_8pysndlib_10generators_85is_nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nsin5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 803, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nsin5") < 0)) __PYX_ERR(0, 803, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nsin5", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 803, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_84is_nsin5(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_84is_nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nsin5", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nsin5(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 803, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 803, __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("pysndlib.generators.is_nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":815
 * # --------------- nrsin ---------------- #
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_87make_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_f_8pysndlib_10generators_make_nrsin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrsin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrsin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":816
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):
 *     return clm.make_nrxysin(frequency, 1., n, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_nrxysin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_2, __pyx_v_frequency, __pyx_float_1_, __pyx_v_n, __pyx_v_r};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 816, __pyx_L1_error)
  __pyx_r = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":815
 * # --------------- nrsin ---------------- #
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.make_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_87make_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_87make_nrsin = {"make_nrsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_87make_nrsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_87make_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nrsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nrsin") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nrsin", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_86make_nrsin(__pyx_self, __pyx_v_frequency, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_86make_nrsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nrsin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nrsin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __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("pysndlib.generators.make_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":818
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nrsin gen
 */

static PyObject *__pyx_pw_8pysndlib_10generators_89nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrsin(struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrsin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_3clm_nrxysin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":824
 *     :rtype: float
 *     """
 *     return clm.nrxysin(gen, fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nrsin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_nrxysin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 824, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":818
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nrsin gen
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_89nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_88nrsin, "\n    :param gen: nrsin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_89nrsin = {"nrsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_89nrsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_88nrsin};
static PyObject *__pyx_pw_8pysndlib_10generators_89nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 818, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 818, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nrsin") < 0)) __PYX_ERR(0, 818, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 818, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrsin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 818, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_3clm_mus_any, 1, "gen", 0))) __PYX_ERR(0, 818, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_88nrsin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_88nrsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nrsin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nrsin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 818, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __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("pysndlib.generators.nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":826
 *     return clm.nrxysin(gen, fm)
 * 
 * cpdef cython.bint is_nrsin(gen):             # <<<<<<<<<<<<<<
 *     return clm.is_nrxysin(gen)
 * # --------------- nrcos ---------------- #
 */

static PyObject *__pyx_pw_8pysndlib_10generators_91is_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrsin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":827
 * 
 * cpdef cython.bint is_nrsin(gen):
 *     return clm.is_nrxysin(gen)             # <<<<<<<<<<<<<<
 * # --------------- nrcos ---------------- #
 * 
 */
  if (!(likely(((__pyx_v_gen) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_gen, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 827, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_is_nrxysin(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_gen), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 827, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":826
 *     return clm.nrxysin(gen, fm)
 * 
 * cpdef cython.bint is_nrsin(gen):             # <<<<<<<<<<<<<<
 *     return clm.is_nrxysin(gen)
 * # --------------- nrcos ---------------- #
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.is_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_91is_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_91is_nrsin = {"is_nrsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_91is_nrsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_91is_nrsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nrsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nrsin") < 0)) __PYX_ERR(0, 826, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nrsin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 826, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_90is_nrsin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_90is_nrsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nrsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nrsin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 826, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 826, __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("pysndlib.generators.is_nrsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":832
 * cdef class Nrcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = 1 + n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 832, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 832, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 832, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos___init__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Nrcos___init__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":833
 * 
 *     def __init__(self, frequency, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = 1 + n
 *         self.r = clm.clamp(r, -.999999, .999999)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":834
 *     def __init__(self, frequency, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = 1 + n             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.angle = 0.0
 */
  __pyx_t_3 = __Pyx_PyInt_AddCObj(__pyx_int_1, __pyx_v_n, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":835
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = 1 + n
 *         self.r = clm.clamp(r, -.999999, .999999)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.rr = self.r * self.r
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_neg__999999, __pyx_float__999999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 835, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":836
 *         self.n = 1 + n
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":837
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.angle = 0.0
 *         self.rr = self.r * self.r             # <<<<<<<<<<<<<<
 *         self.r1 = 1.0 + self.rr
 *         self.e1 = pow(self.r, self.n)
 */
  __pyx_v_self->rr = (__pyx_v_self->r * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":838
 *         self.angle = 0.0
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr             # <<<<<<<<<<<<<<
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, self.n + 1)
 */
  __pyx_v_self->r1 = (1.0 + __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":839
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr
 *         self.e1 = pow(self.r, self.n)             # <<<<<<<<<<<<<<
 *         self.e2 = pow(self.r, self.n + 1)
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->e1 = __pyx_t_2;

  /* "pysndlib/generators.pyx":840
 *         self.r1 = 1.0 + self.rr
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, self.n + 1)             # <<<<<<<<<<<<<<
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 *         self.trouble = (self.n == 1) or (fabs(self.r) < NEARLY_ZERO)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->n + 1.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_7, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 840, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->e2 = __pyx_t_2;

  /* "pysndlib/generators.pyx":841
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, self.n + 1)
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0             # <<<<<<<<<<<<<<
 *         self.trouble = (self.n == 1) or (fabs(self.r) < NEARLY_ZERO)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fabs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_fabs); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_t_7 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 841, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":842
 *         self.e2 = pow(self.r, self.n + 1)
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 *         self.trouble = (self.n == 1) or (fabs(self.r) < NEARLY_ZERO)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_11 = (__pyx_v_self->n == 1.0);
  if (!__pyx_t_11) {
  } else {
    __pyx_t_10 = __pyx_t_11;
    goto __pyx_L3_bool_binop_done;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_11 < 0))) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_10 = __pyx_t_11;
  __pyx_L3_bool_binop_done:;
  __pyx_v_self->trouble = __pyx_t_10;

  /* "pysndlib/generators.pyx":832
 * cdef class Nrcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = 1 + n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":846
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Nrcos_next(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_rcos;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nrcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 846, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":847
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double rcos = self.r * cos(self.angle)
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":848
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if self.trouble:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 848, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 848, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_rcos = __pyx_t_7;

  /* "pysndlib/generators.pyx":849
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if self.trouble:
 *             return 0.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":850
 *         cdef cython.double rcos = self.r * cos(self.angle)
 *         self.angle += fm + self.frequency
 *         if self.trouble:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  if (__pyx_v_self->trouble) {

    /* "pysndlib/generators.pyx":851
 *         self.angle += fm + self.frequency
 *         if self.trouble:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         else:
 *             return ((rcos + (self.e2 * cos((self.n - 1) * x))) - (self.e1 * cos(self.n * x)) - self.rr) / (self.norm * (self.r1 + (-2.0 * rcos)))
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":850
 *         cdef cython.double rcos = self.r * cos(self.angle)
 *         self.angle += fm + self.frequency
 *         if self.trouble:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":853
 *             return 0.0
 *         else:
 *             return ((rcos + (self.e2 * cos((self.n - 1) * x))) - (self.e1 * cos(self.n * x)) - self.rr) / (self.norm * (self.r1 + (-2.0 * rcos)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.):
 */
  /*else*/ {
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_rcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->e2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyFloat_FromDouble(((__pyx_v_self->n - 1.0) * __pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->e1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyFloat_FromDouble((__pyx_v_self->n * __pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->norm * (__pyx_v_self->r1 + (-2.0 * __pyx_v_rcos)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":846
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 846, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 846, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2next(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2next(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nrcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 846, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __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("pysndlib.generators.Nrcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":855
 *             return ((rcos + (self.e2 * cos((self.n - 1) * x))) - (self.e1 * cos(self.n * x)) - self.rr) / (self.norm * (self.r1 + (-2.0 * rcos)))
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 855, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 855, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 855, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":856
 * 
 *     def __call__(self, fm: cython.double=0.):
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nrcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 856, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":855
 *             return ((rcos + (self.e2 * cos((self.n - 1) * x))) - (self.e1 * cos(self.n * x)) - self.rr) / (self.norm * (self.r1 + (-2.0 * rcos)))
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":859
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.double:
 *         return self.n -1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":861
 *     @property
 *     def mus_order(self) -> cython.double:
 *         return self.n -1             # <<<<<<<<<<<<<<
 * 
 *     @mus_order.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->n - 1.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":859
 * 
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.double:
 *         return self.n -1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_order.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":863
 *         return self.n -1
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 864, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":865
 *     @mus_order.setter
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val             # <<<<<<<<<<<<<<
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, (self.n + 1))
 */
  __pyx_v_self->n = (1.0 + __pyx_v_val);

  /* "pysndlib/generators.pyx":866
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 *         self.e1 = pow(self.r, self.n)             # <<<<<<<<<<<<<<
 *         self.e2 = pow(self.r, (self.n + 1))
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->e1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":867
 *         self.n = 1 + val
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, (self.n + 1))             # <<<<<<<<<<<<<<
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 *         self.trouble = (self.n == 1) or (abs(self.r) < NEARLY_ZERO)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->n + 1.0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 867, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->e2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":868
 *         self.e1 = pow(self.r, self.n)
 *         self.e2 = pow(self.r, (self.n + 1))
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0             # <<<<<<<<<<<<<<
 *         self.trouble = (self.n == 1) or (abs(self.r) < NEARLY_ZERO)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1_, 1., 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->norm = __pyx_t_7;

  /* "pysndlib/generators.pyx":869
 *         self.e2 = pow(self.r, (self.n + 1))
 *         self.norm = ((pow(fabs(self.r), self.n) - 1.0) / (fabs(self.r) - 1.)) - 1.0
 *         self.trouble = (self.n == 1) or (abs(self.r) < NEARLY_ZERO)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_10 = (__pyx_v_self->n == 1.0);
  if (!__pyx_t_10) {
  } else {
    __pyx_t_9 = __pyx_t_10;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_10 = (fabs(__pyx_v_self->r) < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  __pyx_t_9 = __pyx_t_10;
  __pyx_L3_bool_binop_done:;
  __pyx_v_self->trouble = __pyx_t_9;

  /* "pysndlib/generators.pyx":863
 *         return self.n -1
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":871
 *         self.trouble = (self.n == 1) or (abs(self.r) < NEARLY_ZERO)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":873
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_radians2hz(__pyx_v_self->frequency, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 873, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":871
 *         self.trouble = (self.n == 1) or (abs(self.r) < NEARLY_ZERO)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":875
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 876, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":877
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_v_val, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 877, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":875
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":879
 *         self.frequency = clm.hz2radians(val)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":881
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":879
 *         self.frequency = clm.hz2radians(val)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":883
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = min(.999999, max(-.999999, val))
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 884, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, double __pyx_v_val) {
  double __pyx_v_absr;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  double __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":885
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = min(.999999, max(-.999999, val))             # <<<<<<<<<<<<<<
 *         absr: cython.double = fabs(self.r)
 *         self.rr = self.r * self.r
 */
  __pyx_t_1 = __pyx_v_val;
  __pyx_t_2 = -.999999;
  __pyx_t_4 = (__pyx_t_1 > __pyx_t_2);
  if (__pyx_t_4) {
    __pyx_t_3 = __pyx_t_1;
  } else {
    __pyx_t_3 = __pyx_t_2;
  }
  __pyx_t_1 = __pyx_t_3;
  __pyx_t_3 = .999999;
  __pyx_t_4 = (__pyx_t_1 < __pyx_t_3);
  if (__pyx_t_4) {
    __pyx_t_2 = __pyx_t_1;
  } else {
    __pyx_t_2 = __pyx_t_3;
  }
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":886
 *     def mus_scaler(self, val: cython.double):
 *         self.r = min(.999999, max(-.999999, val))
 *         absr: cython.double = fabs(self.r)             # <<<<<<<<<<<<<<
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_fabs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (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;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 886, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_absr = __pyx_t_2;

  /* "pysndlib/generators.pyx":887
 *         self.r = min(.999999, max(-.999999, val))
 *         absr: cython.double = fabs(self.r)
 *         self.rr = self.r * self.r             # <<<<<<<<<<<<<<
 *         self.r1 = 1.0 + self.rr
 *         self.norm = ((pow(absr, self.n) - 1) / (absr - 1)) - 1.0
 */
  __pyx_v_self->rr = (__pyx_v_self->r * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":888
 *         absr: cython.double = fabs(self.r)
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr             # <<<<<<<<<<<<<<
 *         self.norm = ((pow(absr, self.n) - 1) / (absr - 1)) - 1.0
 *         self.trouble = ((self.n == 1) or (absr < NEARLY_ZERO))
 */
  __pyx_v_self->r1 = (1.0 + __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":889
 *         self.rr = self.r * self.r
 *         self.r1 = 1.0 + self.rr
 *         self.norm = ((pow(absr, self.n) - 1) / (absr - 1)) - 1.0             # <<<<<<<<<<<<<<
 *         self.trouble = ((self.n == 1) or (absr < NEARLY_ZERO))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pow); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_absr); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_10, __pyx_t_7, __pyx_t_8};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_9, 2+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = __Pyx_PyInt_SubtractObjC(__pyx_t_5, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_absr - 1.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyFloat_SubtractObjC(__pyx_t_8, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":890
 *         self.r1 = 1.0 + self.rr
 *         self.norm = ((pow(absr, self.n) - 1) / (absr - 1)) - 1.0
 *         self.trouble = ((self.n == 1) or (absr < NEARLY_ZERO))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_11 = (__pyx_v_self->n == 1.0);
  if (!__pyx_t_11) {
  } else {
    __pyx_t_4 = __pyx_t_11;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_11 = (__pyx_v_absr < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  __pyx_t_4 = __pyx_t_11;
  __pyx_L3_bool_binop_done:;
  __pyx_v_self->trouble = __pyx_t_4;

  /* "pysndlib/generators.pyx":883
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = min(.999999, max(-.999999, val))
 */

  /* 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_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":156
 * # --------------- nrcos ---------------- #
 * cdef class Nrcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 156, __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("pysndlib.generators.Nrcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 156, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":157
 * cdef class Nrcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 157, __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("pysndlib.generators.Nrcos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 157, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":158
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 158, __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("pysndlib.generators.Nrcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 158, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":159
 *     cdef public cython.double n
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr
 *     cdef public cython.double r1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 159, __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("pysndlib.generators.Nrcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 159, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":160
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double rr             # <<<<<<<<<<<<<<
 *     cdef public cython.double r1
 *     cdef public cython.double e1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2rr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2rr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2rr___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 160, __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("pysndlib.generators.Nrcos.rr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2rr_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 160, __pyx_L1_error)
  __pyx_v_self->rr = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.rr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":161
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 *     cdef public cython.double r1             # <<<<<<<<<<<<<<
 *     cdef public cython.double e1
 *     cdef public cython.double e2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2r1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2r1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2r1___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2r1___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 161, __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("pysndlib.generators.Nrcos.r1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2r1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2r1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2r1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_2r1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 161, __pyx_L1_error)
  __pyx_v_self->r1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.r1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":162
 *     cdef public cython.double rr
 *     cdef public cython.double r1
 *     cdef public cython.double e1             # <<<<<<<<<<<<<<
 *     cdef public cython.double e2
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2e1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2e1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2e1___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2e1___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->e1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 162, __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("pysndlib.generators.Nrcos.e1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2e1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2e1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2e1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_2e1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 162, __pyx_L1_error)
  __pyx_v_self->e1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.e1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":163
 *     cdef public cython.double r1
 *     cdef public cython.double e1
 *     cdef public cython.double e2             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cdef public cython.bint trouble
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2e2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_2e2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2e2___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_2e2___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->e2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 163, __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("pysndlib.generators.Nrcos.e2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2e2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_2e2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_2e2_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_2e2_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 163, __pyx_L1_error)
  __pyx_v_self->e2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.e2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":164
 *     cdef public cython.double e1
 *     cdef public cython.double e2
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cdef public cython.bint trouble
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 164, __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("pysndlib.generators.Nrcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 164, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":165
 *     cdef public cython.double e2
 *     cdef public cython.double norm
 *     cdef public cython.bint trouble             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_7trouble___get__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_7trouble___get__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->trouble); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 165, __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("pysndlib.generators.Nrcos.trouble.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_7trouble_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrcos_7trouble_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 165, __pyx_L1_error)
  __pyx_v_self->trouble = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.trouble.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.e1, self.e2, self.frequency, self.n, self.norm, self.r, self.r1, self.rr, self.trouble)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->e1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->e2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->r1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_v_self->trouble); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyTuple_New(10); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 6, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 7, __pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 8, __pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_10);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 9, __pyx_t_10)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_11);
  __pyx_t_11 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.e1, self.e2, self.frequency, self.n, self.norm, self.r, self.r1, self.rr, self.trouble)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_11 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_v__dict = __pyx_t_11;
  __pyx_t_11 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.e1, self.e2, self.frequency, self.n, self.norm, self.r, self.r1, self.rr, self.trouble)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_12 = (__pyx_v__dict != Py_None);
  if (__pyx_t_12) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_10));
    __pyx_t_10 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.e1, self.e2, self.frequency, self.n, self.norm, self.r, self.r1, self.rr, self.trouble)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_pyx_unpickle_Nrcos); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_95048614);
    __Pyx_GIVEREF(__pyx_int_95048614);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_int_95048614)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_10);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_11);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_11)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_10 = 0;
    __pyx_t_11 = 0;
    __pyx_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, None), state
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pyx_unpickle_Nrcos); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_95048614);
    __Pyx_GIVEREF(__pyx_int_95048614);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_int_95048614)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_11);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_11)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_9 = 0;
    __pyx_t_11 = 0;
    __pyx_r = __pyx_t_10;
    __pyx_t_10 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nrcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nrcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":894
 * 
 * 
 * cpdef Nrcos make_nrcos(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrcos generator that produces 'n' cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_93make_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_f_8pysndlib_10generators_make_nrcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":899
 *     spaced by 'frequency' with amplitudes scaled by r^k.
 *     """
 *     return Nrcos(frequency, n, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 899, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 899, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 899, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":894
 * 
 * 
 * cpdef Nrcos make_nrcos(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrcos generator that produces 'n' cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_93make_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_92make_nrcos, "\n    Creates an nrcos generator that produces 'n' cosines \n    spaced by 'frequency' with amplitudes scaled by r^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_93make_nrcos = {"make_nrcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_93make_nrcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_92make_nrcos};
static PyObject *__pyx_pw_8pysndlib_10generators_93make_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nrcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 894, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nrcos") < 0)) __PYX_ERR(0, 894, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nrcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 894, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_92make_nrcos(__pyx_self, __pyx_v_frequency, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_92make_nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nrcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nrcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 894, __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("pysndlib.generators.make_nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":901
 *     return Nrcos(frequency, n, r)
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency with amplitudes scaled by r^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_95nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrcos(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":909
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nrcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nrcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 909, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":901
 *     return Nrcos(frequency, n, r)
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency with amplitudes scaled by r^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_95nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_94nrcos, "\n    returns n cosines spaced by frequency with amplitudes scaled by r^k.\n        \n    :param gen: nrcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_95nrcos = {"nrcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_95nrcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_94nrcos};
static PyObject *__pyx_pw_8pysndlib_10generators_95nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 901, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 901, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nrcos") < 0)) __PYX_ERR(0, 901, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nrcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 901, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 901, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nrcos, 1, "gen", 0))) __PYX_ERR(0, 901, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_94nrcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_94nrcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nrcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nrcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 901, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 901, __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("pysndlib.generators.nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":911
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nrcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_97is_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":918
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nrcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- nrssb ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nrcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":911
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nrcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_97is_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_96is_nrcos, "\n    returns True if gen is an nrcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_97is_nrcos = {"is_nrcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_97is_nrcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_96is_nrcos};
static PyObject *__pyx_pw_8pysndlib_10generators_97is_nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nrcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nrcos") < 0)) __PYX_ERR(0, 911, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nrcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 911, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_96is_nrcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_96is_nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nrcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nrcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 911, __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("pysndlib.generators.is_nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":924
 * cdef class Nrssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 924, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 924, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 924, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 924, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 924, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
    __pyx_v_r = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 924, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb___init__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Nrssb___init__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":925
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 925, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 925, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":926
 *     def __init__(self, frequency, ratio=1.0, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.r = clm.clamp(r, 0.0, .999999)
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 926, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":927
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, 0.0, .999999)
 *         self.rn = -pow(self.r, self.n)
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 927, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":928
 *         self.ratio = ratio
 *         self.n = n
 *         self.r = clm.clamp(r, 0.0, .999999)             # <<<<<<<<<<<<<<
 *         self.rn = -pow(self.r, self.n)
 *         self.rn1 = pow(self.r, (self.n + 1))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_0_0, __pyx_float__999999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 928, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":929
 *         self.n = n
 *         self.r = clm.clamp(r, 0.0, .999999)
 *         self.rn = -pow(self.r, self.n)             # <<<<<<<<<<<<<<
 *         self.rn1 = pow(self.r, (self.n + 1))
 *         self.norm = (self.rn - 1) / (self.r - 1)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_4, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 929, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 929, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->rn = __pyx_t_2;

  /* "pysndlib/generators.pyx":930
 *         self.r = clm.clamp(r, 0.0, .999999)
 *         self.rn = -pow(self.r, self.n)
 *         self.rn1 = pow(self.r, (self.n + 1))             # <<<<<<<<<<<<<<
 *         self.norm = (self.rn - 1) / (self.r - 1)
 *         self.angle = 0.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->n + 1.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_7, __pyx_t_4};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 930, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->rn1 = __pyx_t_2;

  /* "pysndlib/generators.pyx":931
 *         self.rn = -pow(self.r, self.n)
 *         self.rn1 = pow(self.r, (self.n + 1))
 *         self.norm = (self.rn - 1) / (self.r - 1)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * #         print(self.frequency,  self.ratio , self.n, self.r , self.rn , self.rn1,self.norm )
 */
  __pyx_t_2 = (__pyx_v_self->rn - 1.0);
  __pyx_t_1 = (__pyx_v_self->r - 1.0);
  if (unlikely(__pyx_t_1 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 931, __pyx_L1_error)
  }
  __pyx_v_self->norm = (__pyx_t_2 / __pyx_t_1);

  /* "pysndlib/generators.pyx":932
 *         self.rn1 = pow(self.r, (self.n + 1))
 *         self.norm = (self.rn - 1) / (self.r - 1)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * #         print(self.frequency,  self.ratio , self.n, self.r , self.rn , self.rn1,self.norm )
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":924
 * cdef class Nrssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":936
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Nrssb_next(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_nmx;
  double __pyx_v_n1mx;
  double __pyx_v_den;
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nrssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":937
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":938
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":939
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx             # <<<<<<<<<<<<<<
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 */
  __pyx_v_nmx = (__pyx_v_self->n * __pyx_v_mx);

  /* "pysndlib/generators.pyx":940
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx             # <<<<<<<<<<<<<<
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency
 */
  __pyx_v_n1mx = ((__pyx_v_self->n - 1.0) * __pyx_v_mx);

  /* "pysndlib/generators.pyx":941
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_self->r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":942
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double a = (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":943
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))             # <<<<<<<<<<<<<<
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 *         return (a - b) / den
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_nmx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_n1mx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_a = __pyx_t_7;

  /* "pysndlib/generators.pyx":944
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))             # <<<<<<<<<<<<<<
 *         return (a - b) / den
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyFloat_FromDouble((-1. * __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_nmx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_n1mx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_7;

  /* "pysndlib/generators.pyx":945
 *         cdef cython.double a = (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 *         return (a - b) / den             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_7 = (__pyx_v_a - __pyx_v_b);
  if (unlikely(__pyx_v_den == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 945, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_v_den);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":936
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 936, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 936, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_2next(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_2next(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nrssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __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("pysndlib.generators.Nrssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":947
 *         return (a - b) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 947, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 947, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 947, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":948
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 948, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":947
 *         return (a - b) / den
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":951
 * 
 * 
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_7call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_5Nrssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_interp = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_nmx;
  double __pyx_v_n1mx;
  double __pyx_v_den;
  double __pyx_v_a;
  double __pyx_v_b;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  double __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_interp = __pyx_optional_args->interp;
      }
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call_interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nrssb_7call_interp)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 951, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_interp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 951, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 951, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":952
 * 
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx
 */
  __pyx_t_8 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_8;

  /* "pysndlib/generators.pyx":953
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":954
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx             # <<<<<<<<<<<<<<
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 */
  __pyx_v_nmx = (__pyx_v_self->n * __pyx_v_mx);

  /* "pysndlib/generators.pyx":955
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx             # <<<<<<<<<<<<<<
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency
 */
  __pyx_v_n1mx = ((__pyx_v_self->n - 1.0) * __pyx_v_mx);

  /* "pysndlib/generators.pyx":956
 *         cdef cython.double nmx = self.n * mx
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = interp * (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_den = __pyx_t_8;

  /* "pysndlib/generators.pyx":957
 *         cdef cython.double n1mx = (self.n - 1) * mx
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double a = interp * (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":958
 *         cdef cython.double den = self.norm * (1.0 + (-2.0 * self.r * cos(mx)) + (self.r * self.r))
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = interp * (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))             # <<<<<<<<<<<<<<
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 *         return (a - b) / den
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_interp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_6};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_nmx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_n1mx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_a = __pyx_t_8;

  /* "pysndlib/generators.pyx":959
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = interp * (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))             # <<<<<<<<<<<<<<
 *         return (a - b) / den
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyFloat_FromDouble((-1. * __pyx_v_self->r)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_nmx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_6};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_n1mx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_6};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_8;

  /* "pysndlib/generators.pyx":960
 *         cdef cython.double a = interp * (sin(cx) * ((self.r * sin(mx)) + (self.rn * sin(nmx)) + (self.rn1 * sin(n1mx))))
 *         cdef cython.double b = (cos(cx) * (1.0 + (-1. * self.r * cos(mx)) + (self.rn * cos(nmx)) + (self.rn1 * cos(n1mx))))
 *         return (a - b) / den             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = (__pyx_v_a - __pyx_v_b);
  if (unlikely(__pyx_v_den == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 960, __pyx_L1_error)
  }
  __pyx_t_2 = PyFloat_FromDouble((__pyx_t_8 / __pyx_v_den)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 960, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":951
 * 
 * 
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_7call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrssb_7call_interp = {"call_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_7call_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_7call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "call_interp") < 0)) __PYX_ERR(0, 951, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
    if (values[1]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 951, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call_interp", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 951, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_6call_interp(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_6call_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nrssb->call_interp(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 951, __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("pysndlib.generators.Nrssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":172
 * # --------------- nrssb ---------------- #
 * cdef class Nrssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 172, __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("pysndlib.generators.Nrssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 172, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":173
 * cdef class Nrssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 173, __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("pysndlib.generators.Nrssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 173, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":174
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 174, __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("pysndlib.generators.Nrssb.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 174, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":175
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double interp
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 175, __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("pysndlib.generators.Nrssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 175, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":176
 *     cdef public cython.double n
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double interp
 *     cdef public cython.double rn
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 176, __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("pysndlib.generators.Nrssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 176, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":177
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double interp             # <<<<<<<<<<<<<<
 *     cdef public cython.double rn
 *     cdef public cython.double rn1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_6interp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_6interp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_6interp___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_6interp___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 177, __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("pysndlib.generators.Nrssb.interp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_6interp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_6interp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_6interp_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_6interp_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 177, __pyx_L1_error)
  __pyx_v_self->interp = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.interp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":178
 *     cdef public cython.double angle
 *     cdef public cython.double interp
 *     cdef public cython.double rn             # <<<<<<<<<<<<<<
 *     cdef public cython.double rn1
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_2rn_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_2rn_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_2rn___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_2rn___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 178, __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("pysndlib.generators.Nrssb.rn.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_2rn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_2rn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_2rn_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_2rn_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 178, __pyx_L1_error)
  __pyx_v_self->rn = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.rn.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":179
 *     cdef public cython.double interp
 *     cdef public cython.double rn
 *     cdef public cython.double rn1             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cpdef call_interp(self, cython.double fm =*, cython.double interp=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_3rn1___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_3rn1___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 179, __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("pysndlib.generators.Nrssb.rn1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_3rn1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_3rn1_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 179, __pyx_L1_error)
  __pyx_v_self->rn1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.rn1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":180
 *     cdef public cython.double rn
 *     cdef public cython.double rn1
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cpdef call_interp(self, cython.double fm =*, cython.double interp=*)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 180, __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("pysndlib.generators.Nrssb.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nrssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nrssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nrssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 180, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrssb_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.r, self.ratio, self.rn, self.rn1)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->interp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->rn); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_self->rn1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyTuple_New(9); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 6, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 7, __pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 8, __pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_10);
  __pyx_t_10 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.r, self.ratio, self.rn, self.rn1)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_10 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_v__dict = __pyx_t_10;
  __pyx_t_10 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.r, self.ratio, self.rn, self.rn1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_11 = (__pyx_v__dict != Py_None);
  if (__pyx_t_11) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_9));
    __pyx_t_9 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.r, self.ratio, self.rn, self.rn1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_pyx_unpickle_Nrssb); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_14975952);
    __Pyx_GIVEREF(__pyx_int_14975952);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_int_14975952)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_10);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_10)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_9 = 0;
    __pyx_t_10 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, None), state
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_pyx_unpickle_Nrssb); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_14975952);
    __Pyx_GIVEREF(__pyx_int_14975952);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_int_14975952)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_10);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_8 = 0;
    __pyx_t_10 = 0;
    __pyx_r = __pyx_t_9;
    __pyx_t_9 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nrssb_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nrssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nrssb_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nrssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nrssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nrssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":964
 * 
 * 
 * cpdef Nrssb make_nrssb(frequency=0, ratio=1.0, n=1, r=.5) :             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrssb generator that produces returns n sinusoids from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_99make_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_f_8pysndlib_10generators_make_nrssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nrssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_r = __pyx_optional_args->r;
          }
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":969
 *     frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 *     """
 *     return Nrssb(frequency, ratio, n, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 969, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 969, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 969, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_r)) __PYX_ERR(0, 969, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":964
 * 
 * 
 * cpdef Nrssb make_nrssb(frequency=0, ratio=1.0, n=1, r=.5) :             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrssb generator that produces returns n sinusoids from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_99make_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_98make_nrssb, "\n    Creates an nrssb generator that produces returns n sinusoids from \n    frequency spaced by frequency * ratio with amplitudes scaled by r^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_99make_nrssb = {"make_nrssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_99make_nrssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_98make_nrssb};
static PyObject *__pyx_pw_8pysndlib_10generators_99make_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nrssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 964, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nrssb") < 0)) __PYX_ERR(0, 964, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
    __pyx_v_r = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nrssb", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 964, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_98make_nrssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_98make_nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nrssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nrssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nrssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __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("pysndlib.generators.make_nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":971
 *     return Nrssb(frequency, ratio, n, r)
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_101nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrssb(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":979
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=0.,cython.double interp =0. ):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":971
 *     return Nrssb(frequency, ratio, n, r)
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_101nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_100nrssb, "returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.\n    \n    :param gen: nrssb gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_101nrssb = {"nrssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_101nrssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_100nrssb};
static PyObject *__pyx_pw_8pysndlib_10generators_101nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nrssb") < 0)) __PYX_ERR(0, 971, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nrssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 971, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nrssb, 1, "gen", 0))) __PYX_ERR(0, 971, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_100nrssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_100nrssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nrssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nrssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 971, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 971, __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("pysndlib.generators.nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":981
 *     return gen.next(fm)
 * 
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=0.,cython.double interp =0. ):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_103nrssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nrssb_interp(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp __pyx_t_2;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrssb_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":989
 *     :rtype: float
 *     """
 *     return gen.call_interp(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nrssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->call_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_3;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":981
 *     return gen.next(fm)
 * 
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=0.,cython.double interp =0. ):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.nrssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_103nrssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_102nrssb_interp, "\n    returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.\n        \n    :param gen: nrssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_103nrssb_interp = {"nrssb_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_103nrssb_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_102nrssb_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_103nrssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nrssb_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nrssb_interp") < 0)) __PYX_ERR(0, 981, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nrssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
    if (values[2]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nrssb_interp", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 981, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nrssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nrssb, 1, "gen", 0))) __PYX_ERR(0, 981, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_102nrssb_interp(__pyx_self, __pyx_v_gen, __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_102nrssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nrssb_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nrssb_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 981, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 981, __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("pysndlib.generators.nrssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":991
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_nrssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_105is_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nrssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":998
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nrssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- nkssb ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nrssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":991
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_nrssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_105is_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_104is_nrssb, "\n    returns True if gen is an nrssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_105is_nrssb = {"is_nrssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_105is_nrssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_104is_nrssb};
static PyObject *__pyx_pw_8pysndlib_10generators_105is_nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nrssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nrssb") < 0)) __PYX_ERR(0, 991, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nrssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 991, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_104is_nrssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_104is_nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nrssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nrssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __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("pysndlib.generators.is_nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1005
 * 
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1005, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1005, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1005, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb___init__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Nkssb___init__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1006
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n + 1
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1006, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1006, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1007
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n + 1
 *         self.norm = 1.0 / (.5 * self.n * (self.n - 1.))
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1007, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1008
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.n = n + 1             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (.5 * self.n * (self.n - 1.))
 *         self.angle = 0.0
 */
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1008, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":1009
 *         self.ratio = ratio
 *         self.n = n + 1
 *         self.norm = 1.0 / (.5 * self.n * (self.n - 1.))             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.interp = 0.0
 */
  __pyx_t_2 = ((.5 * __pyx_v_self->n) * (__pyx_v_self->n - 1.));
  if (unlikely(__pyx_t_2 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1009, __pyx_L1_error)
  }
  __pyx_v_self->norm = (1.0 / __pyx_t_2);

  /* "pysndlib/generators.pyx":1010
 *         self.n = n + 1
 *         self.norm = 1.0 / (.5 * self.n * (self.n - 1.))
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.interp = 0.0
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1011
 *         self.norm = 1.0 / (.5 * self.n * (self.n - 1.))
 *         self.angle = 0.0
 *         self.interp = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->interp = 0.0;

  /* "pysndlib/generators.pyx":1005
 * 
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1013
 *         self.interp = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Nkssb_next(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_cxx;
  double __pyx_v_sx2;
  double __pyx_v_nx;
  double __pyx_v_nx2;
  double __pyx_v_sx22;
  double __pyx_v_sxsx;
  double __pyx_v_s1;
  double __pyx_v_c1;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1013, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nkssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1013, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1014
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)
 */
  __pyx_v_x = (__pyx_v_self->angle * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1015
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x             # <<<<<<<<<<<<<<
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x
 */
  __pyx_v_cxx = (__pyx_v_self->angle - __pyx_v_x);

  /* "pysndlib/generators.pyx":1016
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)             # <<<<<<<<<<<<<<
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1016, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sx2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":1017
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x             # <<<<<<<<<<<<<<
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2
 */
  __pyx_v_nx = (__pyx_v_self->n * __pyx_v_x);

  /* "pysndlib/generators.pyx":1018
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x             # <<<<<<<<<<<<<<
 *         cdef cython.double sx22 = 2.0 * sx2
 *         cdef cython.double sxsx = 4 * sx2 * sx2
 */
  __pyx_v_nx2 = ((.5 * ((2.0 * __pyx_v_self->n) - 1.0)) * __pyx_v_x);

  /* "pysndlib/generators.pyx":1019
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2             # <<<<<<<<<<<<<<
 *         cdef cython.double sxsx = 4 * sx2 * sx2
 *         cdef cython.double s1
 */
  __pyx_v_sx22 = (2.0 * __pyx_v_sx2);

  /* "pysndlib/generators.pyx":1020
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2
 *         cdef cython.double sxsx = 4 * sx2 * sx2             # <<<<<<<<<<<<<<
 *         cdef cython.double s1
 *         cdef cython.double c1
 */
  __pyx_v_sxsx = ((4.0 * __pyx_v_sx2) * __pyx_v_sx2);

  /* "pysndlib/generators.pyx":1023
 *         cdef cython.double s1
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(sx2) < NEARLY_ZERO:
 *              return -1. # TODO original has -1 but that seems wrong
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1024
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *              return -1. # TODO original has -1 but that seems wrong
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sx2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1025
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:
 *              return -1. # TODO original has -1 but that seems wrong             # <<<<<<<<<<<<<<
 * 
 *         s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 */
    __pyx_r = -1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1024
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *              return -1. # TODO original has -1 but that seems wrong
 * 
 */
  }

  /* "pysndlib/generators.pyx":1027
 *              return -1. # TODO original has -1 but that seems wrong
 * 
 *         s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)             # <<<<<<<<<<<<<<
 *         c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx)) / sxsx)
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_nx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sxsx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_nx2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sx22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1027, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_s1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":1028
 * 
 *         s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 *         c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx)) / sxsx)             # <<<<<<<<<<<<<<
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_nx2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sx22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_nx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sxsx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1028, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_c1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":1029
 *         s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 *         c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx)) / sxsx)
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):
 */
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_s1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_c1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1029, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1013
 *         self.interp = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nkssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1013, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1013, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1013, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1013, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_2next(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_2next(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nkssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1013, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1013, __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("pysndlib.generators.Nkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1031
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Nkssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_interp = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_cxx;
  double __pyx_v_sx2;
  double __pyx_v_nx;
  double __pyx_v_nx2;
  double __pyx_v_sx22;
  double __pyx_v_sxsx;
  double __pyx_v_s1;
  double __pyx_v_c1;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  double __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_interp = __pyx_optional_args->interp;
      }
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call_interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1031, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Nkssb_5call_interp)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_interp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1032
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):
 *         cdef cython.double x = self.angle * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)
 */
  __pyx_v_x = (__pyx_v_self->angle * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1033
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x             # <<<<<<<<<<<<<<
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x
 */
  __pyx_v_cxx = (__pyx_v_self->angle - __pyx_v_x);

  /* "pysndlib/generators.pyx":1034
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)             # <<<<<<<<<<<<<<
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1034, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1034, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sx2 = __pyx_t_8;

  /* "pysndlib/generators.pyx":1035
 *         cdef cython.double cxx = self.angle - x
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x             # <<<<<<<<<<<<<<
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2
 */
  __pyx_v_nx = (__pyx_v_self->n * __pyx_v_x);

  /* "pysndlib/generators.pyx":1036
 *         cdef cython.double sx2 = sin(.5 * x)
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x             # <<<<<<<<<<<<<<
 *         cdef cython.double sx22 = 2.0 * sx2
 *         cdef cython.double sxsx = 4 * sx2 * sx2
 */
  __pyx_v_nx2 = ((.5 * ((2.0 * __pyx_v_self->n) - 1.0)) * __pyx_v_x);

  /* "pysndlib/generators.pyx":1037
 *         cdef cython.double nx = self.n * x
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2             # <<<<<<<<<<<<<<
 *         cdef cython.double sxsx = 4 * sx2 * sx2
 *         cdef cython.double s1
 */
  __pyx_v_sx22 = (2.0 * __pyx_v_sx2);

  /* "pysndlib/generators.pyx":1038
 *         cdef cython.double nx2 = .5 * ((2*self.n) - 1) * x
 *         cdef cython.double sx22 = 2.0 * sx2
 *         cdef cython.double sxsx = 4 * sx2 * sx2             # <<<<<<<<<<<<<<
 *         cdef cython.double s1
 *         cdef cython.double c1
 */
  __pyx_v_sxsx = ((4.0 * __pyx_v_sx2) * __pyx_v_sx2);

  /* "pysndlib/generators.pyx":1041
 *         cdef cython.double s1
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(sx2) < NEARLY_ZERO:
 *             return 1.
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1042
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_sx2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1042, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1042, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 1042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":1043
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:
 *             return 1.             # <<<<<<<<<<<<<<
 *         else:
 *             s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1042
 *         cdef cython.double c1
 *         self.angle += fm + self.frequency
 *         if fabs(sx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1045
 *             return 1.
 *         else:
 *             s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)             # <<<<<<<<<<<<<<
 *             c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx))/ sxsx)
 *             return ((c1 * cos(cxx)) - (interp * sin(cxx) * s1)) * self.norm
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_nx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sxsx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_nx2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_sx22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1045, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_s1 = __pyx_t_8;

    /* "pysndlib/generators.pyx":1046
 *         else:
 *             s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 *             c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx))/ sxsx)             # <<<<<<<<<<<<<<
 *             return ((c1 * cos(cxx)) - (interp * sin(cxx) * s1)) * self.norm
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_nx2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_1};
      __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sx22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_nx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sxsx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1046, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_c1 = __pyx_t_8;

    /* "pysndlib/generators.pyx":1047
 *             s1 = (sin(nx) / sxsx) - ((self.n * cos(nx2)) / sx22)
 *             c1 = (sin(nx2) / sx22) - ((1.0 - cos(nx))/ sxsx)
 *             return ((c1 * cos(cxx)) - (interp * sin(cxx) * s1)) * self.norm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_c1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_interp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = NULL;
    __pyx_t_7 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_7 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_s1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1047, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_8;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1031
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nkssb_5call_interp = {"call_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_5call_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "call_interp") < 0)) __PYX_ERR(0, 1031, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
    if (values[1]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call_interp", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1031, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_4call_interp(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_4call_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nkssb->call_interp(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1031, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __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("pysndlib.generators.Nkssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1049
 *             return ((c1 * cos(cxx)) - (interp * sin(cxx) * s1)) * self.norm
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1049, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1049, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1049, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1049, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_6__call__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_6__call__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1050
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1050, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1049
 *             return ((c1 * cos(cxx)) - (interp * sin(cxx) * s1)) * self.norm
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1052
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.double:
 *         return self.n -1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1054
 *     @property
 *     def mus_order(self) -> cython.double:
 *         return self.n -1             # <<<<<<<<<<<<<<
 * 
 *     @mus_order.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->n - 1.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1052
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.double:
 *         return self.n -1
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.mus_order.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1056
 *         return self.n -1
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1057, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.mus_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1058
 *     @mus_order.setter
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 */
  __pyx_v_self->n = (1.0 + __pyx_v_val);

  /* "pysndlib/generators.pyx":1059
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 *         self.norm = 1.0 / (.5 * val * (val - 1.))             # <<<<<<<<<<<<<<
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):
 */
  __pyx_t_1 = ((.5 * __pyx_v_val) * (__pyx_v_val - 1.));
  if (unlikely(__pyx_t_1 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1059, __pyx_L1_error)
  }
  __pyx_v_self->norm = (1.0 / __pyx_t_1);

  /* "pysndlib/generators.pyx":1056
 *         return self.n -1
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.double):
 *         self.n = 1 + val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.mus_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":189
 * # --------------- nkssb ---------------- #
 * cdef class Nkssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 189, __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("pysndlib.generators.Nkssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 189, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":190
 * cdef class Nkssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 190, __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("pysndlib.generators.Nkssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 190, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":191
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 191, __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("pysndlib.generators.Nkssb.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 191, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":192
 *     cdef public cython.double ratio
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cdef public cython.double interp
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 192, __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("pysndlib.generators.Nkssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 192, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":193
 *     cdef public cython.double n
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cdef public cython.double interp
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 193, __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("pysndlib.generators.Nkssb.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 193, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":194
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 *     cdef public cython.double interp             # <<<<<<<<<<<<<<
 *     cpdef cython.double call_interp(self, cython.double fm=*, cython.double interp=*)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_6interp_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_6interp_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_6interp___get__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_6interp___get__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 194, __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("pysndlib.generators.Nkssb.interp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Nkssb_6interp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Nkssb_6interp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_6interp_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Nkssb_6interp_2__set__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 194, __pyx_L1_error)
  __pyx_v_self->interp = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.interp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nkssb_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->interp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.interp, self.n, self.norm, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Nkssb); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_169112353);
    __Pyx_GIVEREF(__pyx_int_169112353);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_169112353)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, None), state
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Nkssb); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_169112353);
    __Pyx_GIVEREF(__pyx_int_169112353);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_169112353)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Nkssb_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Nkssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Nkssb_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Nkssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nkssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nkssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1061
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nkssb generator that produces n sinusoids from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_107make_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_f_8pysndlib_10generators_make_nkssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nkssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nkssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1066
 *     frequency spaced by frequency * ratio with amplitude k.
 *     """
 *     return Nkssb(frequency, ratio, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1066, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1066, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 1066, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1061
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nkssb generator that produces n sinusoids from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_107make_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_106make_nkssb, "\n    Creates an nkssb generator that produces n sinusoids from \n    frequency spaced by frequency * ratio with amplitude k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_107make_nkssb = {"make_nkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_107make_nkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_106make_nkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_107make_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1061, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1061, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1061, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nkssb") < 0)) __PYX_ERR(0, 1061, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nkssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1061, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_106make_nkssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_106make_nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nkssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nkssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1061, __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("pysndlib.generators.make_nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1068
 *     return Nkssb(frequency, ratio, n)
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n sinusoids from frequency spaced by frequency * ratio with amplitude k
 */

static PyObject *__pyx_pw_8pysndlib_10generators_109nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nkssb(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1077
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=0., cython.double interp=0.0):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1077, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1068
 *     return Nkssb(frequency, ratio, n)
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n sinusoids from frequency spaced by frequency * ratio with amplitude k
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_109nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_108nkssb, "\n    produces n sinusoids from frequency spaced by frequency * ratio with amplitude k\n    \n        \n    :param gen: nkssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_109nkssb = {"nkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_109nkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_108nkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_109nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1068, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1068, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nkssb") < 0)) __PYX_ERR(0, 1068, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nkssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1068, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nkssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1068, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nkssb, 1, "gen", 0))) __PYX_ERR(0, 1068, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_108nkssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_108nkssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nkssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nkssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1068, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1068, __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("pysndlib.generators.nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1079
 *     return gen.next(fm)
 * 
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=0., cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_111nkssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nkssb_interp(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_v_interp = ((double)0.0);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_interp = __pyx_optional_args->interp;
      }
    }
  }

  /* "pysndlib/generators.pyx":1085
 *     sidebands are above (1.0) or below (-1.0) frequency.
 *     """
 *     return gen.call_interp(fm, interp)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nkssb(gen):
 */
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->call_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1085, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1079
 *     return gen.next(fm)
 * 
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=0., cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nkssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_111nkssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_110nkssb_interp, "\n    returns n sinusoids from frequency spaced by frequency * ratio \n    with amplitude k. The 'interp' argument determines whether the \n    sidebands are above (1.0) or below (-1.0) frequency.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_111nkssb_interp = {"nkssb_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_111nkssb_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_110nkssb_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_111nkssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nkssb_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nkssb_interp") < 0)) __PYX_ERR(0, 1079, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nkssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
    if (values[2]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nkssb_interp", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1079, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nkssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nkssb, 1, "gen", 0))) __PYX_ERR(0, 1079, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_110nkssb_interp(__pyx_self, __pyx_v_gen, __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_110nkssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nkssb_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nkssb_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1079, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1079, __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("pysndlib.generators.nkssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1087
 *     return gen.call_interp(fm, interp)
 * 
 * cpdef cython.bint is_nkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nkssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_113is_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nkssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1094
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nkssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nkssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1087
 *     return gen.call_interp(fm, interp)
 * 
 * cpdef cython.bint is_nkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nkssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_113is_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_112is_nkssb, "\n    returns True if gen is an nkssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_113is_nkssb = {"is_nkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_113is_nkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_112is_nkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_113is_nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nkssb") < 0)) __PYX_ERR(0, 1087, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nkssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1087, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_112is_nkssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_112is_nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nkssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1087, __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("pysndlib.generators.is_nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1102
 * cdef class Nsincos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1102, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1102, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1102, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1102, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos___init__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Nsincos___init__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_v_k = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  Py_ssize_t __pyx_t_9;
  PyObject *(*__pyx_t_10)(PyObject *);
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1103
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.n2 = (n + 1) / 2
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1103, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1104
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.n2 = (n + 1) / 2
 *         self.cosn = cos(PI / (n + 1))
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1104, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":1105
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.n2 = (n + 1) / 2             # <<<<<<<<<<<<<<
 *         self.cosn = cos(PI / (n + 1))
 *         self.norm = 0.0
 */
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_3, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1105, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->n2 = __pyx_t_2;

  /* "pysndlib/generators.pyx":1106
 *         self.n = n
 *         self.n2 = (n + 1) / 2
 *         self.cosn = cos(PI / (n + 1))             # <<<<<<<<<<<<<<
 *         self.norm = 0.0
 *         for k in range(1,n):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->cosn = __pyx_t_2;

  /* "pysndlib/generators.pyx":1107
 *         self.n2 = (n + 1) / 2
 *         self.cosn = cos(PI / (n + 1))
 *         self.norm = 0.0             # <<<<<<<<<<<<<<
 *         for k in range(1,n):
 *             self.norm += sin((k*PI) / (n + 1)) / sin(PI / (n + 1))
 */
  __pyx_v_self->norm = 0.0;

  /* "pysndlib/generators.pyx":1108
 *         self.cosn = cos(PI / (n + 1))
 *         self.norm = 0.0
 *         for k in range(1,n):             # <<<<<<<<<<<<<<
 *             self.norm += sin((k*PI) / (n + 1)) / sin(PI / (n + 1))
 *         self.angle = 0.0
 */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_1)) __PYX_ERR(0, 1108, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_n)) __PYX_ERR(0, 1108, __pyx_L1_error);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_9 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1108, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1108, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
          #endif
          if (__pyx_t_9 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
        #else
        __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
          #endif
          if (__pyx_t_9 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely((0 < 0))) __PYX_ERR(0, 1108, __pyx_L1_error)
        #else
        __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1108, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_10(__pyx_t_4);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1108, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "pysndlib/generators.pyx":1109
 *         self.norm = 0.0
 *         for k in range(1,n):
 *             self.norm += sin((k*PI) / (n + 1)) / sin(PI / (n + 1))             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_sin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_12};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_sin); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_13};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_12, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1109, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_self->norm = __pyx_t_2;

    /* "pysndlib/generators.pyx":1108
 *         self.cosn = cos(PI / (n + 1))
 *         self.norm = 0.0
 *         for k in range(1,n):             # <<<<<<<<<<<<<<
 *             self.norm += sin((k*PI) / (n + 1)) / sin(PI / (n + 1))
 *         self.angle = 0.0
 */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":1110
 *         for k in range(1,n):
 *             self.norm += sin((k*PI) / (n + 1)) / sin(PI / (n + 1))
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1102
 * cdef class Nsincos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1113
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Nsincos_next(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Nsincos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_num;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1113, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Nsincos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1113, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1114
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double num = cos(self.n2 * x)
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1115
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (num*num) / (self.norm * (cos(x) - self.cosn))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->n2 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_num = __pyx_t_7;

  /* "pysndlib/generators.pyx":1116
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (num*num) / (self.norm * (cos(x) - self.cosn))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1117
 *         cdef cython.double num = cos(self.n2 * x)
 *         self.angle += fm + self.frequency
 *         return (num*num) / (self.norm * (cos(x) - self.cosn))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_num * __pyx_v_num)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->cosn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1113
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nsincos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nsincos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1113, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1113, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1113, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1113, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_2next(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_2next(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nsincos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1113, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1113, __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("pysndlib.generators.Nsincos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1120
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1120, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1120, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1120, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1120, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1121
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nsincos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1121, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1120
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":203
 * # --------------- nsincos ---------------- #
 * cdef class Nsincos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 203, __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("pysndlib.generators.Nsincos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 203, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":204
 * cdef class Nsincos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double n2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 204, __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("pysndlib.generators.Nsincos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 204, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":205
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double n2
 *     cdef public cython.double cosn
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 205, __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("pysndlib.generators.Nsincos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 205, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":206
 *     cdef public cython.double n
 *     cdef public cython.double angle
 *     cdef public cython.double n2             # <<<<<<<<<<<<<<
 *     cdef public cython.double cosn
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_2n2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_2n2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_2n2___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_2n2___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 206, __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("pysndlib.generators.Nsincos.n2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_2n2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_2n2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_2n2_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_2n2_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 206, __pyx_L1_error)
  __pyx_v_self->n2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.n2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":207
 *     cdef public cython.double angle
 *     cdef public cython.double n2
 *     cdef public cython.double cosn             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_4cosn___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4cosn___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->cosn); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 207, __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("pysndlib.generators.Nsincos.cosn.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_4cosn_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_4cosn_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 207, __pyx_L1_error)
  __pyx_v_self->cosn = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.cosn.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":208
 *     cdef public cython.double n2
 *     cdef public cython.double cosn
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 208, __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("pysndlib.generators.Nsincos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Nsincos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Nsincos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Nsincos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 208, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nsincos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nsincos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.cosn, self.frequency, self.n, self.n2, self.norm)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->cosn); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->n2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.cosn, self.frequency, self.n, self.n2, self.norm)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.cosn, self.frequency, self.n, self.n2, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.cosn, self.frequency, self.n, self.n2, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Nsincos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_178322785);
    __Pyx_GIVEREF(__pyx_int_178322785);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_178322785)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, None), state
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Nsincos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_178322785);
    __Pyx_GIVEREF(__pyx_int_178322785);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_178322785)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Nsincos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nsincos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Nsincos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Nsincos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Nsincos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nsincos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nsincos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1124
 * 
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     return Nsincos(frequency, n)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_115make_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_f_8pysndlib_10generators_make_nsincos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nsincos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nsincos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":1125
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):
 *     return Nsincos(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1125, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 1125, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsincos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1124
 * 
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     return Nsincos(frequency, n)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_115make_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_115make_nsincos = {"make_nsincos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_115make_nsincos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_115make_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nsincos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nsincos") < 0)) __PYX_ERR(0, 1124, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nsincos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_114make_nsincos(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_114make_nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nsincos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nsincos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nsincos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1124, __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("pysndlib.generators.make_nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1127
 *     return Nsincos(frequency, n)
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nsincos gen
 */

static PyObject *__pyx_pw_8pysndlib_10generators_117nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nsincos(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsincos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1133
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nsincos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nsincos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1133, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1127
 *     return Nsincos(frequency, n)
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nsincos gen
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_117nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_116nsincos, "\n    :param gen: nsincos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_117nsincos = {"nsincos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_117nsincos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_116nsincos};
static PyObject *__pyx_pw_8pysndlib_10generators_117nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nsincos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1127, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1127, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nsincos") < 0)) __PYX_ERR(0, 1127, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nsincos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1127, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nsincos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1127, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nsincos, 1, "gen", 0))) __PYX_ERR(0, 1127, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_116nsincos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_116nsincos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nsincos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nsincos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nsincos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1127, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1127, __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("pysndlib.generators.nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1135
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsincos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsincos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_119is_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nsincos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1142
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nsincos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nsincos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1135
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsincos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsincos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_119is_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_118is_nsincos, "\n    returns True if gen is an nsincos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_119is_nsincos = {"is_nsincos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_119is_nsincos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_118is_nsincos};
static PyObject *__pyx_pw_8pysndlib_10generators_119is_nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nsincos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1135, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nsincos") < 0)) __PYX_ERR(0, 1135, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nsincos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1135, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_118is_nsincos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_118is_nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nsincos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nsincos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1135, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __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("pysndlib.generators.is_nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1150
 * cdef class N1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5N1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5N1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1150, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1150, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1150, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1150, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos___init__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5N1cos___init__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1151
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1151, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1151, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1152
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1152, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":1153
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1150
 * cdef class N1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1155
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5N1cos_next(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5N1cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_tn;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5N1cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1155, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1155, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1156
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double tn = tan(.5 * x)
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1157
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(tn) < 1.0e-6:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1157, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_tn = __pyx_t_7;

  /* "pysndlib/generators.pyx":1158
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(tn) < 1.0e-6:
 *             return 1.
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1159
 *         cdef cython.double tn = tan(.5 * x)
 *         self.angle += fm + self.frequency
 *         if fabs(tn) < 1.0e-6:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_tn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1_0eneg_6, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1160
 *         self.angle += fm + self.frequency
 *         if fabs(tn) < 1.0e-6:
 *             return 1.             # <<<<<<<<<<<<<<
 *         else:
 *             return (1.0 - cos(self.n * x)) / (tn * tn * self.n * self.n * 2)
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1159
 *         cdef cython.double tn = tan(.5 * x)
 *         self.angle += fm + self.frequency
 *         if fabs(tn) < 1.0e-6:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1162
 *             return 1.
 *         else:
 *             return (1.0 - cos(self.n * x)) / (tn * tn * self.n * self.n * 2)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->n * __pyx_v_x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyFloat_FromDouble(((((__pyx_v_tn * __pyx_v_tn) * __pyx_v_self->n) * __pyx_v_self->n) * 2.0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1162, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1155
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.N1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5N1cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5N1cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1155, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1155, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1155, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1155, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.N1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_2next(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_2next(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_N1cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1155, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1155, __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("pysndlib.generators.N1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1164
 *             return (1.0 - cos(self.n * x)) / (tn * tn * self.n * self.n * 2)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1164, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1164, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1165
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_N1cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1165, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1164
 *             return (1.0 - cos(self.n * x)) / (tn * tn * self.n * self.n * 2)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":216
 * 
 * cdef class N1cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 216, __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("pysndlib.generators.N1cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5N1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5N1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5N1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 216, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.N1cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":217
 * cdef class N1cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 217, __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("pysndlib.generators.N1cos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5N1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5N1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5N1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 217, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.N1cos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":218
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 218, __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("pysndlib.generators.N1cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5N1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5N1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5N1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 218, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.N1cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5N1cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5N1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_N1cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_N1cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5N1cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5N1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5N1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5N1cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5N1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_N1cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.N1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1167
 *         return self.next(fm)
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 */

static PyObject *__pyx_pw_8pysndlib_10generators_121make_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_f_8pysndlib_10generators_make_n1cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_n1cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_n1cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":1171
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 *     """
 *     return N1cos(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1171, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 1171, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_N1cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1167
 *         return self.next(fm)
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_121make_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_120make_n1cos, "\n    Creates an n1cos generator that produces a spikey waveform similar to ncos2\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_121make_n1cos = {"make_n1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_121make_n1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_120make_n1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_121make_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_n1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1167, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1167, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_n1cos") < 0)) __PYX_ERR(0, 1167, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_n1cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1167, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_120make_n1cos(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_120make_n1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_n1cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_n1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_n1cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1167, __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("pysndlib.generators.make_n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1173
 *     return N1cos(frequency, n)
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: n1cos gen
 */

static PyObject *__pyx_pw_8pysndlib_10generators_123n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_n1cos(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_n1cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1179
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_n1cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_N1cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1179, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1173
 *     return N1cos(frequency, n)
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: n1cos gen
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_123n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_122n1cos, "\n    :param gen: n1cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_123n1cos = {"n1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_123n1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_122n1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_123n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("n1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "n1cos") < 0)) __PYX_ERR(0, 1173, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_N1cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("n1cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1173, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_N1cos, 1, "gen", 0))) __PYX_ERR(0, 1173, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_122n1cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_122n1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_n1cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("n1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_n1cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1173, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1173, __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("pysndlib.generators.n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_n1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an n1cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_125is_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_n1cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1188
 *     :rtype: bool
 *     """
 *     return isinstance(gen, N1cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_N1cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_n1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an n1cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_125is_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_124is_n1cos, "\n    returns True if gen is an n1cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_125is_n1cos = {"is_n1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_125is_n1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_124is_n1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_125is_n1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_n1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1181, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_n1cos") < 0)) __PYX_ERR(0, 1181, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_n1cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1181, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_124is_n1cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_124is_n1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_n1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_n1cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1181, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1181, __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("pysndlib.generators.is_n1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1195
 * cdef class Npos1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1195, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1195, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1195, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1195, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos___init__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_8Npos1cos___init__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1196
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1196, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1196, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1197
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1197, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":1198
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1195
 * cdef class Npos1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1200
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 */

static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_8Npos1cos_next(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Npos1cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_num;
  double __pyx_v_sx;
  double __pyx_v_den;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1200, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_8Npos1cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1200, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1200, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1200, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1201
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 *         #cdef cython.double num = ((self.n + 2) * math.sin((self.n*x) / 2)) - (self.n * math.sin(1.0 / ((self.n + 2) * 2)))
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1202
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))             # <<<<<<<<<<<<<<
 *         #cdef cython.double num = ((self.n + 2) * math.sin((self.n*x) / 2)) - (self.n * math.sin(1.0 / ((self.n + 2) * 2)))
 *         cdef cython.double sx = sin(x / 2.)
 */
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->n + 2.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_self->n * __pyx_v_x) / 2.0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((((__pyx_v_self->n + 2.0) * __pyx_v_x) / 2.0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1202, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1202, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_num = __pyx_t_7;

  /* "pysndlib/generators.pyx":1204
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 *         #cdef cython.double num = ((self.n + 2) * math.sin((self.n*x) / 2)) - (self.n * math.sin(1.0 / ((self.n + 2) * 2)))
 *         cdef cython.double sx = sin(x / 2.)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 4 * self.n * (self.n + 1) * (self.n + 2) * sx * sx * sx * sx
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_x / 2.)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1205
 *         #cdef cython.double num = ((self.n + 2) * math.sin((self.n*x) / 2)) - (self.n * math.sin(1.0 / ((self.n + 2) * 2)))
 *         cdef cython.double sx = sin(x / 2.)
 *         cdef cython.double den = 4 * self.n * (self.n + 1) * (self.n + 2) * sx * sx * sx * sx             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_v_den = (((((((4.0 * __pyx_v_self->n) * (__pyx_v_self->n + 1.0)) * (__pyx_v_self->n + 2.0)) * __pyx_v_sx) * __pyx_v_sx) * __pyx_v_sx) * __pyx_v_sx);

  /* "pysndlib/generators.pyx":1206
 *         cdef cython.double sx = sin(x / 2.)
 *         cdef cython.double den = 4 * self.n * (self.n + 1) * (self.n + 2) * sx * sx * sx * sx
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1207
 *         cdef cython.double den = 4 * self.n * (self.n + 1) * (self.n + 2) * sx * sx * sx * sx
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1207, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 1207, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":1208
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0             # <<<<<<<<<<<<<<
 *         else:
 *             return (3 * num * num) / den
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1207
 *         cdef cython.double den = 4 * self.n * (self.n + 1) * (self.n + 2) * sx * sx * sx * sx
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1210
 *             return 0.0
 *         else:
 *             return (3 * num * num) / den             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_7 = ((3.0 * __pyx_v_num) * __pyx_v_num);
    if (unlikely(__pyx_v_den == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 1210, __pyx_L1_error)
    }
    __pyx_r = (__pyx_t_7 / __pyx_v_den);
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1200
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos1cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos1cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1200, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1200, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1200, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1200, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_2next(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_2next(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Npos1cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1200, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1200, __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("pysndlib.generators.Npos1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1213
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1213, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1213, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1213, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1213, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1214
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npos1cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1214, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1214, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1213
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":226
 * 
 * cdef class Npos1cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 226, __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("pysndlib.generators.Npos1cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 226, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":227
 * cdef class Npos1cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 227, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos1cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 227, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":228
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 228, __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("pysndlib.generators.Npos1cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 228, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos1cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Npos1cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Npos1cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos1cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos1cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npos1cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Npos1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1216
 *         return self.next(fm)
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsincos generator that produces n cosines spaced
 */

static PyObject *__pyx_pw_8pysndlib_10generators_127make_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_f_8pysndlib_10generators_make_npos1cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npos1cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npos1cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":1221
 *     by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))
 *     """
 *     return Npos1cos(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1221, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 1221, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos1cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1216
 *         return self.next(fm)
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsincos generator that produces n cosines spaced
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_127make_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_126make_npos1cos, "\n    Creates an nsincos generator that produces n cosines spaced \n    by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_127make_npos1cos = {"make_npos1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_127make_npos1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_126make_npos1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_127make_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_npos1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1216, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1216, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_npos1cos") < 0)) __PYX_ERR(0, 1216, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_npos1cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1216, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_126make_npos1cos(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_126make_npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_npos1cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npos1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_npos1cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1216, __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("pysndlib.generators.make_npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1223
 *     return Npos1cos(frequency, n)
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))
 */

static PyObject *__pyx_pw_8pysndlib_10generators_129npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_npos1cos(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos1cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1231
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_npos1cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npos1cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1231, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1223
 *     return Npos1cos(frequency, n)
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_129npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_128npos1cos, "\n    produces n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))\n    \n    :param gen: npos1cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_129npos1cos = {"npos1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_129npos1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_128npos1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_129npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("npos1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1223, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1223, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "npos1cos") < 0)) __PYX_ERR(0, 1223, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1223, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("npos1cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1223, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Npos1cos, 1, "gen", 0))) __PYX_ERR(0, 1223, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_128npos1cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_128npos1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_npos1cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("npos1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_npos1cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1223, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1223, __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("pysndlib.generators.npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1233
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos1cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_131is_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npos1cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1240
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Npos1cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Npos1cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1233
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos1cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_131is_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_130is_npos1cos, "\n    returns True if gen is an npos1cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_131is_npos1cos = {"is_npos1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_131is_npos1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_130is_npos1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_131is_npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_npos1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1233, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_npos1cos") < 0)) __PYX_ERR(0, 1233, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_npos1cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1233, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_130is_npos1cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_130is_npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_npos1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_npos1cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1233, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __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("pysndlib.generators.is_npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1247
 * cdef class Npos3cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1247, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1247, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1247, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1247, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos___init__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_8Npos3cos___init__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1248
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1248, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1248, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1249
 *     def __init__(self, frequency, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1249, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":1250
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1247
 * cdef class Npos3cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1252
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_8Npos3cos_next(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Npos3cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_sx;
  double __pyx_v_den;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_8Npos3cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1252, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1252, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1253
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double sx = sin(x / 2.)
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1254
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_x / 2.)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1255
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_v_den = ((((4.0 * __pyx_v_self->n) + 2.0) * __pyx_v_sx) * __pyx_v_sx);

  /* "pysndlib/generators.pyx":1256
 *         cdef cython.double sx = sin(x / 2.)
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0 * self.n
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1257
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0 * self.n
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1258
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:
 *             return 1.0 * self.n             # <<<<<<<<<<<<<<
 *         else:
 *             return (2 - cos(self.n * x) - cos((self.n + 1) * x)) / den
 */
    __pyx_r = (1.0 * __pyx_v_self->n);
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1257
 *         cdef cython.double den = ((4*self.n) + 2) * sx * sx
 *         self.angle += fm + self.frequency
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0 * self.n
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1260
 *             return 1.0 * self.n
 *         else:
 *             return (2 - cos(self.n * x) - cos((self.n + 1) * x)) / den             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->n * __pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1260, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_2, __pyx_t_4, 2, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_self->n + 1.0) * __pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1260, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1260, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1252
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 */

  /* 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("pysndlib.generators.Npos3cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos3cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos3cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1252, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1252, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_2next(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_2next(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Npos3cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1252, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1252, __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("pysndlib.generators.Npos3cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1263
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1263, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1263, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1263, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_4__call__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1264
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npos3cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1264, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1263
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":235
 * # --------------- npos3cos ---------------- #
 * cdef class Npos3cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 235, __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("pysndlib.generators.Npos3cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos3cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 235, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":236
 * cdef class Npos3cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 236, __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("pysndlib.generators.Npos3cos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos3cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 236, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":237
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=*)
 * cpdef cython.bint is_npos3cos(gen)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 237, __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("pysndlib.generators.Npos3cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Npos3cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 237, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos3cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos3cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Npos3cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, None), state
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Npos3cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_114002020);
    __Pyx_GIVEREF(__pyx_int_114002020);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_114002020)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Npos3cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos3cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Npos3cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Npos3cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Npos3cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npos3cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Npos3cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1266
 *         return self.next(fm)
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_133make_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_f_8pysndlib_10generators_make_npos3cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_npos3cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npos3cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":1270
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 *     """
 *     return Npos3cos(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1270, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 1270, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos3cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1266
 *         return self.next(fm)
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_133make_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_132make_npos3cos, "\n    creates an npos3cos generator that produces n cosines spaced by frequency.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_133make_npos3cos = {"make_npos3cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_133make_npos3cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_132make_npos3cos};
static PyObject *__pyx_pw_8pysndlib_10generators_133make_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_npos3cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1266, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1266, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_npos3cos") < 0)) __PYX_ERR(0, 1266, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_npos3cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1266, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_132make_npos3cos(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_132make_npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_npos3cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_npos3cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_npos3cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1266, __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("pysndlib.generators.make_npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1272
 *     return Npos3cos(frequency, n)
 * 
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_135npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_npos3cos(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos3cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1280
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_npos3cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Npos3cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1280, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1272
 *     return Npos3cos(frequency, n)
 * 
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_135npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_134npos3cos, "\n    produces n cosines spaced by frequency\n        \n    :param gen: npos3cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_135npos3cos = {"npos3cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_135npos3cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_134npos3cos};
static PyObject *__pyx_pw_8pysndlib_10generators_135npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("npos3cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1272, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1272, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "npos3cos") < 0)) __PYX_ERR(0, 1272, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1272, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("npos3cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1272, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Npos3cos, 1, "gen", 0))) __PYX_ERR(0, 1272, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_134npos3cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_134npos3cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_npos3cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("npos3cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_npos3cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1272, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1272, __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("pysndlib.generators.npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1282
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos3cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos3cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_137is_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_npos3cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1289
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Npos3cos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- rcos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Npos3cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1282
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos3cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos3cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_137is_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_136is_npos3cos, "\n    returns True if gen is an npos3cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_137is_npos3cos = {"is_npos3cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_137is_npos3cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_136is_npos3cos};
static PyObject *__pyx_pw_8pysndlib_10generators_137is_npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_npos3cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1282, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_npos3cos") < 0)) __PYX_ERR(0, 1282, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_npos3cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1282, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_136is_npos3cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_136is_npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_npos3cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_npos3cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1282, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1282, __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("pysndlib.generators.is_npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1295
 * cdef class Rcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r):             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(frequency, .5 * PI)
 *         self.r = clm.clamp(r, -.999999, .999999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1295, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1295, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, 1); __PYX_ERR(0, 1295, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1295, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
      values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 1295, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos___init__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_4Rcos___init__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  double __pyx_v_absr;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_t_7;
  double __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1296
 * 
 *     def __init__(self, frequency, r):
 *         self.osc = clm.make_oscil(frequency, .5 * PI)             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr = self.r * self.r
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((.5 * __pyx_v_8pysndlib_10generators_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_frequency, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 1296, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1297
 *     def __init__(self, frequency, r):
 *         self.osc = clm.make_oscil(frequency, .5 * PI)
 *         self.r = clm.clamp(r, -.999999, .999999)             # <<<<<<<<<<<<<<
 *         self.rr = self.r * self.r
 *         self.rrp1 = 1.0 + self.rr
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_clamp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_3, __pyx_v_r, __pyx_float_neg__999999, __pyx_float__999999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":1298
 *         self.osc = clm.make_oscil(frequency, .5 * PI)
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr = self.r * self.r             # <<<<<<<<<<<<<<
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr
 */
  __pyx_v_self->rr = (__pyx_v_self->r * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1299
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr = self.r * self.r
 *         self.rrp1 = 1.0 + self.rr             # <<<<<<<<<<<<<<
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2. * self.r
 */
  __pyx_v_self->rrp1 = (1.0 + __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":1300
 *         self.rr = self.r * self.r
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr             # <<<<<<<<<<<<<<
 *         self.r2 = 2. * self.r
 *         cdef cython.double absr = fabs(self.r)
 */
  __pyx_v_self->rrm1 = (1.0 - __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":1301
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2. * self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double absr = fabs(self.r)
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)
 */
  __pyx_v_self->r2 = (2. * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1302
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2. * self.r
 *         cdef cython.double absr = fabs(self.r)             # <<<<<<<<<<<<<<
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1302, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_absr = __pyx_t_6;

  /* "pysndlib/generators.pyx":1303
 *         self.r2 = 2. * self.r
 *         cdef cython.double absr = fabs(self.r)
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = (__pyx_v_absr < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  if (__pyx_t_7) {
    __pyx_t_6 = 0.0;
  } else {
    __pyx_t_8 = (1.0 - __pyx_v_absr);
    __pyx_t_9 = (2.0 * __pyx_v_absr);
    if (unlikely(__pyx_t_9 == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 1303, __pyx_L1_error)
    }
    __pyx_t_6 = (__pyx_t_8 / __pyx_t_9);
  }
  __pyx_v_self->norm = __pyx_t_6;

  /* "pysndlib/generators.pyx":1295
 * cdef class Rcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r):             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(frequency, .5 * PI)
 *         self.r = clm.clamp(r, -.999999, .999999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1306
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Rcos_next(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1306, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Rcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1306, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1306, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1307
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1307, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = (__pyx_v_self->rrp1 - (__pyx_v_self->r2 * __pyx_t_7));
  if (unlikely(__pyx_t_9 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1307, __pyx_L1_error)
  }
  __pyx_r = (((__pyx_v_self->rrm1 / __pyx_t_9) - 1.0) * __pyx_v_self->norm);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1306
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm
 * 
 */

  /* 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("pysndlib.generators.Rcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1306, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1306, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_2next(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2next(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1306, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1306, __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("pysndlib.generators.Rcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1310
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1310, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1310, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1310, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1310, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1311
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1311, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1310
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1313
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.osc.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency___get__(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1315
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return clm.osc.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_clm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_osc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1313
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.osc.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1317
 *         return clm.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         clm.osc.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1318, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_13mus_frequency_2__set__(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1319
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         clm.osc.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_osc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1319, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 1319, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":1317
 *         return clm.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         clm.osc.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1321
 *         clm.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scale(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1323
 *     @property
 *     def mus_scale(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scale.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1321
 *         clm.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scale(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_scale.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1325
 *         return self.r
 * 
 *     @mus_scale.setter             # <<<<<<<<<<<<<<
 *     def mus_scale(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .999999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1326, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_scale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_9mus_scale_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, double __pyx_v_val) {
  double __pyx_v_absr;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_t_7;
  double __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1327
 *     @mus_scale.setter
 *     def mus_scale(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .999999)             # <<<<<<<<<<<<<<
 *         self.rr = self.r*self.r
 *         self.rrp1 = 1.0 + self.rr
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__999999, __pyx_float__999999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":1328
 *     def mus_scale(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .999999)
 *         self.rr = self.r*self.r             # <<<<<<<<<<<<<<
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr
 */
  __pyx_v_self->rr = (__pyx_v_self->r * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1329
 *         self.r = clm.clamp(val, -.999999, .999999)
 *         self.rr = self.r*self.r
 *         self.rrp1 = 1.0 + self.rr             # <<<<<<<<<<<<<<
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2.0 * self.r
 */
  __pyx_v_self->rrp1 = (1.0 + __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":1330
 *         self.rr = self.r*self.r
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr             # <<<<<<<<<<<<<<
 *         self.r2 = 2.0 * self.r
 *         absr: cython.double = fabs(self.r)
 */
  __pyx_v_self->rrm1 = (1.0 - __pyx_v_self->rr);

  /* "pysndlib/generators.pyx":1331
 *         self.rrp1 = 1.0 + self.rr
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2.0 * self.r             # <<<<<<<<<<<<<<
 *         absr: cython.double = fabs(self.r)
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)
 */
  __pyx_v_self->r2 = (2.0 * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1332
 *         self.rrm1 = 1.0 - self.rr
 *         self.r2 = 2.0 * self.r
 *         absr: cython.double = fabs(self.r)             # <<<<<<<<<<<<<<
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1332, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_absr = __pyx_t_6;

  /* "pysndlib/generators.pyx":1333
 *         self.r2 = 2.0 * self.r
 *         absr: cython.double = fabs(self.r)
 *         self.norm = 0.0 if absr < NEARLY_ZERO else (1.0 - absr) /  ( 2.0 * absr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_7 = (__pyx_v_absr < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  if (__pyx_t_7) {
    __pyx_t_6 = 0.0;
  } else {
    __pyx_t_8 = (1.0 - __pyx_v_absr);
    __pyx_t_9 = (2.0 * __pyx_v_absr);
    if (unlikely(__pyx_t_9 == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 1333, __pyx_L1_error)
    }
    __pyx_t_6 = (__pyx_t_8 / __pyx_t_9);
  }
  __pyx_v_self->norm = __pyx_t_6;

  /* "pysndlib/generators.pyx":1325
 *         return self.r
 * 
 *     @mus_scale.setter             # <<<<<<<<<<<<<<
 *     def mus_scale(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .999999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.mus_scale.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":243
 * 
 * cdef class Rcos(CLMGenerator):
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double rr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 243, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "pysndlib/generators.pxd":244
 * cdef class Rcos(CLMGenerator):
 *     cdef public clm.mus_any osc
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr
 *     cdef public cython.double rrp1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 244, __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("pysndlib.generators.Rcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 244, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":245
 *     cdef public clm.mus_any osc
 *     cdef public cython.double r
 *     cdef public cython.double rr             # <<<<<<<<<<<<<<
 *     cdef public cython.double rrp1
 *     cdef public cython.double rrm1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_2rr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_2rr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_2rr___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 245, __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("pysndlib.generators.Rcos.rr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_2rr_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 245, __pyx_L1_error)
  __pyx_v_self->rr = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.rr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":246
 *     cdef public cython.double r
 *     cdef public cython.double rr
 *     cdef public cython.double rrp1             # <<<<<<<<<<<<<<
 *     cdef public cython.double rrm1
 *     cdef public cython.double r2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4rrp1___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4rrp1___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rrp1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 246, __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("pysndlib.generators.Rcos.rrp1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4rrp1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_4rrp1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 246, __pyx_L1_error)
  __pyx_v_self->rrp1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.rrp1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":247
 *     cdef public cython.double rr
 *     cdef public cython.double rrp1
 *     cdef public cython.double rrm1             # <<<<<<<<<<<<<<
 *     cdef public cython.double r2
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4rrm1___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4rrm1___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rrm1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 247, __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("pysndlib.generators.Rcos.rrm1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4rrm1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_4rrm1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 247, __pyx_L1_error)
  __pyx_v_self->rrm1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.rrm1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":248
 *     cdef public cython.double rrp1
 *     cdef public cython.double rrm1
 *     cdef public cython.double r2             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_2r2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_2r2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_2r2___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 248, __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("pysndlib.generators.Rcos.r2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_2r2_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 248, __pyx_L1_error)
  __pyx_v_self->r2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.r2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":249
 *     cdef public cython.double rrm1
 *     cdef public cython.double r2
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 249, __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("pysndlib.generators.Rcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 249, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.norm, self.osc, self.r, self.r2, self.rr, self.rrm1, self.rrp1)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rrm1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rrp1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.norm, self.osc, self.r, self.r2, self.rr, self.rrm1, self.rrp1)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.norm, self.osc, self.r, self.r2, self.rr, self.rrm1, self.rrp1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.norm, self.osc, self.r, self.r2, self.rr, self.rrm1, self.rrp1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, None), state
 */
  /*else*/ {
    __pyx_t_8 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_8;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Rcos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_254343081);
    __Pyx_GIVEREF(__pyx_int_254343081);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_254343081)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, None), state
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Rcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_254343081);
    __Pyx_GIVEREF(__pyx_int_254343081);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_254343081)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1336
 * 
 * 
 * cpdef Rcos make_rcos(frequency=0, r=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_139make_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_f_8pysndlib_10generators_make_rcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1340
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 *     """
 *     return Rcos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 1340, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1336
 * 
 * 
 * cpdef Rcos make_rcos(frequency=0, r=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_139make_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_138make_rcos, "\n    Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_139make_rcos = {"make_rcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_139make_rcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_138make_rcos};
static PyObject *__pyx_pw_8pysndlib_10generators_139make_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rcos") < 0)) __PYX_ERR(0, 1336, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1336, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_138make_rcos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_138make_rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1336, __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("pysndlib.generators.make_rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1342
 *     return Rcos(frequency, r)
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude r^k
 */

static PyObject *__pyx_pw_8pysndlib_10generators_141rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rcos(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1351
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1351, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1342
 *     return Rcos(frequency, r)
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude r^k
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_141rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_140rcos, "\n    returns many cosines spaced by frequency with amplitude r^k\n        \n    :param gen: rcos gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_141rcos = {"rcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_141rcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_140rcos};
static PyObject *__pyx_pw_8pysndlib_10generators_141rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1342, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1342, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rcos") < 0)) __PYX_ERR(0, 1342, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1342, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1342, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rcos, 1, "gen", 0))) __PYX_ERR(0, 1342, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_140rcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_140rcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1342, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1342, __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("pysndlib.generators.rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1353
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_143is_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1360
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1353
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_143is_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_142is_rcos, "\n    returns True if gen is an rcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_143is_rcos = {"is_rcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_143is_rcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_142is_rcos};
static PyObject *__pyx_pw_8pysndlib_10generators_143is_rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1353, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rcos") < 0)) __PYX_ERR(0, 1353, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1353, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_142is_rcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_142is_rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1353, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1353, __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("pysndlib.generators.is_rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1367
 * cdef class Rssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1367, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1367, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1367, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1367, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1367, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb___init__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_4Rssb___init__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1368
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1368, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1368, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1369
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1369, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1370
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1370, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1371
 *         self.ratio = ratio
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1367
 * cdef class Rssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1373
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Rssb_next(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_angle1;
  double __pyx_v_angle2;
  double __pyx_v_carsin;
  double __pyx_v_canrcos;
  double __pyx_v_den;
  double __pyx_v_sumsin;
  double __pyx_v_sumcos;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Rssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1373, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1373, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1374
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double angle1 = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_angle1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":1375
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 */
  __pyx_v_angle2 = (__pyx_v_angle1 * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1376
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1376, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_carsin = __pyx_t_7;

  /* "pysndlib/generators.pyx":1377
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_canrcos = __pyx_t_7;

  /* "pysndlib/generators.pyx":1378
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 */
  __pyx_t_1 = PyFloat_FromDouble((1.0 + (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1378, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":1379
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)             # <<<<<<<<<<<<<<
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sumsin = __pyx_t_7;

  /* "pysndlib/generators.pyx":1380
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1380, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1380, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_sumcos = __pyx_t_7;

  /* "pysndlib/generators.pyx":1381
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1382
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):
 */
  __pyx_t_7 = (__pyx_v_canrcos * __pyx_v_sumcos);
  __pyx_t_9 = (2.0 * __pyx_v_den);
  if (unlikely(__pyx_t_9 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1382, __pyx_L1_error)
  }
  __pyx_r = ((__pyx_v_carsin * __pyx_v_sumsin) - (__pyx_t_7 / __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1373
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1373, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1373, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1373, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1373, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_2next(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_2next(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1373, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1373, __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("pysndlib.generators.Rssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1384
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.double angle1 = self.angle
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Rssb_call_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_interp = ((double)0.0);
  double __pyx_v_angle1;
  double __pyx_v_angle2;
  double __pyx_v_carsin;
  double __pyx_v_canrcos;
  double __pyx_v_den;
  double __pyx_v_sumsin;
  double __pyx_v_sumcos;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  double __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_interp = __pyx_optional_args->interp;
      }
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_call_interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Rssb_5call_interp)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_interp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1384, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_5 = __pyx_t_1; __pyx_t_6 = NULL;
        __pyx_t_7 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_7 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_4};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_8;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1386
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):
 * 
 *         cdef cython.double angle1 = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 */
  __pyx_t_8 = __pyx_v_self->angle;
  __pyx_v_angle1 = __pyx_t_8;

  /* "pysndlib/generators.pyx":1387
 * 
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 */
  __pyx_v_angle2 = (__pyx_v_angle1 * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1388
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_carsin = __pyx_t_8;

  /* "pysndlib/generators.pyx":1389
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1389, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_canrcos = __pyx_t_8;

  /* "pysndlib/generators.pyx":1390
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 */
  __pyx_t_1 = PyFloat_FromDouble((1.0 + (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_3};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1390, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_den = __pyx_t_8;

  /* "pysndlib/generators.pyx":1391
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)             # <<<<<<<<<<<<<<
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 */
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sumsin = __pyx_t_8;

  /* "pysndlib/generators.pyx":1392
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (interp * canrcos * sumcos) / (2.0 * den)
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1392, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_5, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_sumcos = __pyx_t_8;

  /* "pysndlib/generators.pyx":1393
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (carsin * sumsin) - (interp * canrcos * sumcos) / (2.0 * den)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1394
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (interp * canrcos * sumcos) / (2.0 * den)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_8 = ((__pyx_v_interp * __pyx_v_canrcos) * __pyx_v_sumcos);
  __pyx_t_9 = (2.0 * __pyx_v_den);
  if (unlikely(__pyx_t_9 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1394, __pyx_L1_error)
  }
  __pyx_r = ((__pyx_v_carsin * __pyx_v_sumsin) - (__pyx_t_8 / __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1384
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.double angle1 = self.angle
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rssb_5call_interp = {"call_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_5call_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5call_interp(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("call_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "call_interp") < 0)) __PYX_ERR(0, 1384, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
    if (values[1]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("call_interp", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1384, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_4call_interp(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_4call_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("call_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rssb->call_interp(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1384, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __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("pysndlib.generators.Rssb.call_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1397
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1397, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1397, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1397, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_6__call__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_6__call__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1398
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1398, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1397
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1400
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1402
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1400
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1404
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1405, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_4Rssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1406
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":1404
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":258
 * 
 * cdef class Rssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 258, __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("pysndlib.generators.Rssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 258, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":259
 * cdef class Rssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 259, __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("pysndlib.generators.Rssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 259, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":260
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 260, __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("pysndlib.generators.Rssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 260, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":261
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 261, __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("pysndlib.generators.Rssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Rssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Rssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Rssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rssb_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Rssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, None), state
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Rssb_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Rssb_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Rssb_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Rssb_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1409
 * 
 * 
 * cpdef Rssb make_rssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 */

static PyObject *__pyx_pw_8pysndlib_10generators_145make_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_f_8pysndlib_10generators_make_rssb(PyObject *__pyx_v_frequency, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rssb *__pyx_optional_args) {
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ratio = __pyx_optional_args->ratio;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1413
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 *     """
 *     return Rssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1413, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1413, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1413, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1409
 * 
 * 
 * cpdef Rssb make_rssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_145make_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_144make_rssb, "\n    creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k.\"\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_145make_rssb = {"make_rssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_145make_rssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_144make_rssb};
static PyObject *__pyx_pw_8pysndlib_10generators_145make_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1409, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1409, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rssb") < 0)) __PYX_ERR(0, 1409, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rssb", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1409, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_144make_rssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_144make_rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rssb(__pyx_v_frequency, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1409, __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("pysndlib.generators.make_rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1415
 *     return Rssb(frequency, ratio, r)
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio with amplitude r^k."""
 *     return gen.next(fm)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_147rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rssb(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1417
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):
 *     """returns many cosines from frequency spaced by frequency * ratio with amplitude r^k."""
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=0., cython.double interp=0.):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1417, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1415
 *     return Rssb(frequency, ratio, r)
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio with amplitude r^k."""
 *     return gen.next(fm)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_147rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_146rssb, "returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_147rssb = {"rssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_147rssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_146rssb};
static PyObject *__pyx_pw_8pysndlib_10generators_147rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1415, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1415, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rssb") < 0)) __PYX_ERR(0, 1415, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1415, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1415, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rssb, 1, "gen", 0))) __PYX_ERR(0, 1415, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_146rssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_146rssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1415, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1415, __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("pysndlib.generators.rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1419
 *     return gen.next(fm)
 * 
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=0., cython.double interp=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio
 *     with amplitude r^k. The 'interp' argument determines whether the sidebands
 */

static PyObject *__pyx_pw_8pysndlib_10generators_149rssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rssb_interp(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1429
 *     :rtype: float
 *     """
 *     return gen.call_interp(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->call_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1429, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1419
 *     return gen.next(fm)
 * 
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=0., cython.double interp=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio
 *     with amplitude r^k. The 'interp' argument determines whether the sidebands
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_149rssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_148rssb_interp, "returns many cosines from frequency spaced by frequency * ratio \n    with amplitude r^k. The 'interp' argument determines whether the sidebands \n    are above (1.0) or below (-1.0) frequency\n    \n        \n    :param gen: rssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_149rssb_interp = {"rssb_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_149rssb_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_148rssb_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_149rssb_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  double __pyx_v_interp;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rssb_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,&__pyx_n_s_interp,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_interp);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rssb_interp") < 0)) __PYX_ERR(0, 1419, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
    if (values[2]) {
      __pyx_v_interp = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_interp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L3_error)
    } else {
      __pyx_v_interp = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rssb_interp", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1419, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rssb, 1, "gen", 0))) __PYX_ERR(0, 1419, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_148rssb_interp(__pyx_self, __pyx_v_gen, __pyx_v_fm, __pyx_v_interp);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_148rssb_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v_gen, double __pyx_v_fm, double __pyx_v_interp) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rssb_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rssb_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_2.interp = __pyx_v_interp;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rssb_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1419, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1419, __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("pysndlib.generators.rssb_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1431
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_rssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_151is_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1438
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1431
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_rssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_151is_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_150is_rssb, "\n    returns True if gen is an rssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_151is_rssb = {"is_rssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_151is_rssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_150is_rssb};
static PyObject *__pyx_pw_8pysndlib_10generators_151is_rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1431, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rssb") < 0)) __PYX_ERR(0, 1431, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1431, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_150is_rssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_150is_rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1431, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1431, __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("pysndlib.generators.is_rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1446
 * cdef class Rxysin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1446, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1446, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1446, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1446, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1446, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin___init__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Rxysin___init__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1447
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1447, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1447, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1448
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1448, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1449
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)             # <<<<<<<<<<<<<<
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1449, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1450
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r             # <<<<<<<<<<<<<<
 *         self.rr = 1.0 + (self.r*self.r)
 *         self.angle = 0.0
 */
  __pyx_v_self->r2 = (-2.0 * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1451
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_v_self->rr = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":1452
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1446
 * cdef class Rxysin(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1454
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Rxysin_next(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rxysin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1454, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Rxysin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1454, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1454, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1455
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1456
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (sin(x) - (self.r * sin(x - y))) / (self.rr + (self.r2 * cos(y)))
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1457
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (sin(x) - (self.r * sin(x - y))) / (self.rr + (self.r2 * cos(y)))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1458
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency
 *         return (sin(x) - (self.r * sin(x - y))) / (self.rr + (self.r2 * cos(y)))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_x - __pyx_v_y)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1458, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1454
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxysin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxysin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1454, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1454, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1454, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1454, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_2next(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2next(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rxysin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1454, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __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("pysndlib.generators.Rxysin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1461
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1461, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1461, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1461, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1461, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_4__call__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1462
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rxysin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1462, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1462, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1461
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1464
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1466
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1466, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1464
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1468
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999,.99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1469, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1470
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999,.99999)             # <<<<<<<<<<<<<<
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":1471
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999,.99999)
 *         self.r2 = -2.0 * self.r             # <<<<<<<<<<<<<<
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 */
  __pyx_v_self->r2 = (-2.0 * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1472
 *         self.r = clm.clamp(val, -.99999,.99999)
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)             # <<<<<<<<<<<<<<
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):
 */
  __pyx_v_self->rr = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":1468
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999,.99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":273
 * 
 * cdef class Rxysin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 273, __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("pysndlib.generators.Rxysin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 273, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":274
 * cdef class Rxysin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 274, __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("pysndlib.generators.Rxysin.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 274, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":275
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 275, __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("pysndlib.generators.Rxysin.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 275, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":276
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr
 *     cdef public cython.double r2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 276, __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("pysndlib.generators.Rxysin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 276, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":277
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double rr             # <<<<<<<<<<<<<<
 *     cdef public cython.double r2
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_2rr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_2rr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_2rr___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 277, __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("pysndlib.generators.Rxysin.rr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_2rr_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 277, __pyx_L1_error)
  __pyx_v_self->rr = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.rr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":278
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 *     cdef public cython.double r2             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_2r2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_2r2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_2r2___get__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 278, __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("pysndlib.generators.Rxysin.r2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxysin_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxysin_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_2r2_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxysin_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 278, __pyx_L1_error)
  __pyx_v_self->r2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.r2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxysin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxysin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.r2, self.ratio, self.rr)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Rxysin); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_258104651);
    __Pyx_GIVEREF(__pyx_int_258104651);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_258104651)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, None), state
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Rxysin); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_258104651);
    __Pyx_GIVEREF(__pyx_int_258104651);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_258104651)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxysin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxysin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxysin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxysin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxysin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rxysin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rxysin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1474
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 */

static PyObject *__pyx_pw_8pysndlib_10generators_153make_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_f_8pysndlib_10generators_make_rxysin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rxysin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rxysin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1478
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 *     """
 *     return Rxysin(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1478, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1478, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1478, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxysin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1474
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_153make_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_152make_rxysin, "\n    creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k.\"\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_153make_rxysin = {"make_rxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_153make_rxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_152make_rxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_153make_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1474, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1474, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1474, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rxysin") < 0)) __PYX_ERR(0, 1474, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rxysin", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1474, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_152make_rxysin(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_152make_rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rxysin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rxysin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1474, __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("pysndlib.generators.make_rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1480
 *     return Rxysin(frequency, ratio, r)
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * ratio with amplitude r^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_155rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rxysin(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxysin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1489
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rxysin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rxysin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1489, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1480
 *     return Rxysin(frequency, ratio, r)
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * ratio with amplitude r^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_155rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_154rxysin, "\n    returns many sines from frequency spaced by frequency * ratio with amplitude r^k.\n    \n        \n    :param gen: rxysin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_155rxysin = {"rxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_155rxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_154rxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_155rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1480, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1480, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rxysin") < 0)) __PYX_ERR(0, 1480, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rxysin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1480, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rxysin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1480, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rxysin, 1, "gen", 0))) __PYX_ERR(0, 1480, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_154rxysin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_154rxysin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rxysin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rxysin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1480, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1480, __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("pysndlib.generators.rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1491
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxysin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_157is_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rxysin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1498
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rxysin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rxysin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1491
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxysin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_157is_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_156is_rxysin, "\n    returns True if gen is an rxysin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_157is_rxysin = {"is_rxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_157is_rxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_156is_rxysin};
static PyObject *__pyx_pw_8pysndlib_10generators_157is_rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1491, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rxysin") < 0)) __PYX_ERR(0, 1491, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rxysin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1491, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_156is_rxysin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_156is_rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rxysin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rxysin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1491, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1491, __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("pysndlib.generators.is_rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1506
 * cdef class Rxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1506, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1506, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1506, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1506, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1506, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos___init__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Rxycos___init__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1507
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1507, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1507, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1508
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1508, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1509
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)             # <<<<<<<<<<<<<<
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1510
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r             # <<<<<<<<<<<<<<
 *         self.rr = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 - fabs(self.r)
 */
  __pyx_v_self->r2 = (-2.0 * __pyx_v_self->r);

  /* "pysndlib/generators.pyx":1511
 *         self.r = clm.clamp(r, -.99999,.99999)
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 - fabs(self.r)
 *         self.angle = 0.0
 */
  __pyx_v_self->rr = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":1512
 *         self.r2 = -2.0 * self.r
 *         self.rr = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 - fabs(self.r)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fabs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1512, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1512, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":1513
 *         self.rr = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 - fabs(self.r)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1506
 * cdef class Rxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1515
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Rxycos_next(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rxycos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Rxycos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1515, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1515, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1516
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1517
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return ((cos(x) - (self.r * cos(x - y))) / (self.rr + (self.r2 * cos(y)))) * self.norm
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1518
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return ((cos(x) - (self.r * cos(x - y))) / (self.rr + (self.r2 * cos(y)))) * self.norm
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1519
 *         cdef cython.double y = x * self.ratio
 *         self.angle += fm + self.frequency
 *         return ((cos(x) - (self.r * cos(x - y))) / (self.rr + (self.r2 * cos(y)))) * self.norm             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_x - __pyx_v_y)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1515
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxycos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxycos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1515, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1515, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1515, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1515, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_2next(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2next(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rxycos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1515, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1515, __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("pysndlib.generators.Rxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1522
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 *     @property
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1522, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1522, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1522, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1522, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1523
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 *     @property
 *     def mus_frequency(self) -> cython.double:
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1523, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1522
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 *     @property
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1524
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1526
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_radians2hz(__pyx_v_self->frequency, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1526, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1524
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1528
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1529, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1530
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_v_val, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1530, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":1528
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":286
 * 
 * cdef class Rxycos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 286, __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("pysndlib.generators.Rxycos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 286, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":287
 * cdef class Rxycos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 287, __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("pysndlib.generators.Rxycos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 287, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":288
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 288, __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("pysndlib.generators.Rxycos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 288, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":289
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr
 *     cdef public cython.double r2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 289, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 289, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":290
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double rr             # <<<<<<<<<<<<<<
 *     cdef public cython.double r2
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_2rr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_2rr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_2rr___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2rr___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 290, __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("pysndlib.generators.Rxycos.rr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_2rr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_2rr_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_2rr_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 290, __pyx_L1_error)
  __pyx_v_self->rr = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.rr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":291
 *     cdef public cython.double angle
 *     cdef public cython.double rr
 *     cdef public cython.double r2             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_2r2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_2r2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_2r2___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 291, __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("pysndlib.generators.Rxycos.r2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_2r2_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 291, __pyx_L1_error)
  __pyx_v_self->r2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.r2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":292
 *     cdef public cython.double rr
 *     cdef public cython.double r2
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 292, __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("pysndlib.generators.Rxycos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rxycos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rxycos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rxycos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 292, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxycos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r, self.r2, self.ratio, self.rr)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->rr); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 6, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  if (__pyx_t_9) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r, self.r2, self.ratio, self.rr)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_Rxycos); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238530126);
    __Pyx_GIVEREF(__pyx_int_238530126);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_238530126)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, None), state
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Rxycos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238530126);
    __Pyx_GIVEREF(__pyx_int_238530126);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_238530126)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rxycos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rxycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rxycos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rxycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rxycos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1534
 * 
 * 
 * cpdef Rxycos make_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxycos generator that produces many cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_159make_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_f_8pysndlib_10generators_make_rxycos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rxycos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rxycos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1539
 *     from frequency spaced by frequency * ratio with amplitude r^k.
 *     """
 *     return Rxycos(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1539, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1539, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1539, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxycos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1534
 * 
 * 
 * cpdef Rxycos make_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxycos generator that produces many cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_159make_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_158make_rxycos, "\n    creates an rxycos generator that produces many cosines \n    from frequency spaced by frequency * ratio with amplitude r^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_159make_rxycos = {"make_rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_159make_rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_158make_rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_159make_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1534, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1534, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1534, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rxycos") < 0)) __PYX_ERR(0, 1534, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rxycos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1534, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_158make_rxycos(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_158make_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rxycos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rxycos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1534, __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("pysndlib.generators.make_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1541
 *     return Rxycos(frequency, ratio, r)
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_161rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rxycos(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxycos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1549
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rxycos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rxycos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1549, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1541
 *     return Rxycos(frequency, ratio, r)
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_161rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_160rxycos, "\n    returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.\n        \n    :param gen: rxycos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_161rxycos = {"rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_161rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_160rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_161rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1541, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1541, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rxycos") < 0)) __PYX_ERR(0, 1541, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rxycos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1541, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rxycos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1541, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rxycos, 1, "gen", 0))) __PYX_ERR(0, 1541, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_160rxycos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_160rxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rxycos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rxycos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1541, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1541, __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("pysndlib.generators.rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1551
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxycos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_163is_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rxycos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1558
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rxycos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rxycos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1551
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxycos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_163is_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_162is_rxycos, "\n    returns True if gen is an rxycos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_163is_rxycos = {"is_rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_163is_rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_162is_rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_163is_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1551, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rxycos") < 0)) __PYX_ERR(0, 1551, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rxycos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1551, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_162is_rxycos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_162is_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rxycos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1551, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1551, __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("pysndlib.generators.is_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1566
 * cdef class SafeRxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  CYTHON_UNUSED PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1566, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1566, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1566, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1566, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1566, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos___init__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos___init__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, CYTHON_UNUSED PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1567
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = self.clamp_rxycos_r(0.0)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1567, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1567, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1568
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = self.clamp_rxycos_r(0.0)
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1568, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1569
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = self.clamp_rxycos_r(0.0)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.cutoff = .001
 */
  __pyx_t_4.__pyx_n = 1;
  __pyx_t_4.fm = 0.0;
  __pyx_t_3 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->clamp_rxycos_r(__pyx_v_self, 0, &__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1569, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1570
 *         self.ratio = ratio
 *         self.r = self.clamp_rxycos_r(0.0)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.cutoff = .001
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1571
 *         self.r = self.clamp_rxycos_r(0.0)
 *         self.angle = 0.0
 *         self.cutoff = .001             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->cutoff = .001;

  /* "pysndlib/generators.pyx":1566
 * cdef class SafeRxycos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1574
 * 
 * 
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:
 */

static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  PyObject *__pyx_v_maxr = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clamp_rxycos_r", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_clamp_rxycos_r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r)) {
        __Pyx_XDECREF(__pyx_r);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1574, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1575
 * 
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))             # <<<<<<<<<<<<<<
 *         if self.r >= 0.0:
 *             return min(self.r, maxr)
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->cutoff); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_floor); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = ((3.0 * __pyx_v_self->ratio) * (__pyx_v_fm + __pyx_v_self->frequency));
  if (unlikely(__pyx_t_7 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1575, __pyx_L1_error)
  }
  if (unlikely(__pyx_v_self->ratio == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1575, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_8pysndlib_10generators_TWO_PI / __pyx_t_7) - (1.0 / __pyx_v_self->ratio))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1575, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Power(__pyx_t_1, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_maxr = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1576
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:             # <<<<<<<<<<<<<<
 *             return min(self.r, maxr)
 *         else:
 */
  __pyx_t_8 = (__pyx_v_self->r >= 0.0);
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1577
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:
 *             return min(self.r, maxr)             # <<<<<<<<<<<<<<
 *         else:
 *             return max(self.r, -maxr)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_maxr);
    __pyx_t_2 = __pyx_v_maxr;
    __pyx_t_7 = __pyx_v_self->r;
    __pyx_t_1 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1577, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1577, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_8) {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_4 = __pyx_t_2;
    } else {
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1576
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:             # <<<<<<<<<<<<<<
 *             return min(self.r, maxr)
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1579
 *             return min(self.r, maxr)
 *         else:
 *             return max(self.r, -maxr)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = PyNumber_Negative(__pyx_v_maxr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __pyx_v_self->r;
    __pyx_t_3 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1579, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_2 = __pyx_t_4;
    } else {
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __pyx_t_1;
      __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_2);
    __pyx_r = __pyx_t_2;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1574
 * 
 * 
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.clamp_rxycos_r", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_maxr);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r = {"clamp_rxycos_r", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("clamp_rxycos_r (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1574, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "clamp_rxycos_r") < 0)) __PYX_ERR(0, 1574, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1574, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("clamp_rxycos_r", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1574, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.clamp_rxycos_r", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_2clamp_rxycos_r(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_2clamp_rxycos_r(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("clamp_rxycos_r", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_SafeRxycos->clamp_rxycos_r(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __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("pysndlib.generators.SafeRxycos.clamp_rxycos_r", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1582
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_10SafeRxycos_next(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  CYTHON_UNUSED PyObject *__pyx_v_maxr = 0;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1582, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_10SafeRxycos_5next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1582, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1582, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1582, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1583
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y = x * self.ratio
 *         cdef maxr = 0.0
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1584
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio             # <<<<<<<<<<<<<<
 *         cdef maxr = 0.0
 *         self.angle += fm + self.frequency
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1585
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 *         cdef maxr = 0.0             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 * 
 */
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_maxr = __pyx_float_0_0;

  /* "pysndlib/generators.pyx":1586
 *         cdef cython.double y = x * self.ratio
 *         cdef maxr = 0.0
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 * 
 *         if fm != 0.0:
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1588
 *         self.angle += fm + self.frequency
 * 
 *         if fm != 0.0:             # <<<<<<<<<<<<<<
 *             self.r = self.clamp_rxycos_r(fm)
 *         return ((cos(x) - (self.r * cos(x - y))) /  (1.0 + (-2.0 * self.r * cos(y)) + (self.r*self.r))) * (1.0 - fabs(self.r))
 */
  __pyx_t_8 = (__pyx_v_fm != 0.0);
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1589
 * 
 *         if fm != 0.0:
 *             self.r = self.clamp_rxycos_r(fm)             # <<<<<<<<<<<<<<
 *         return ((cos(x) - (self.r * cos(x - y))) /  (1.0 + (-2.0 * self.r * cos(y)) + (self.r*self.r))) * (1.0 - fabs(self.r))
 * 
 */
    __pyx_t_9.__pyx_n = 1;
    __pyx_t_9.fm = __pyx_v_fm;
    __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->clamp_rxycos_r(__pyx_v_self, 0, &__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1589, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1589, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_self->r = __pyx_t_7;

    /* "pysndlib/generators.pyx":1588
 *         self.angle += fm + self.frequency
 * 
 *         if fm != 0.0:             # <<<<<<<<<<<<<<
 *             self.r = self.clamp_rxycos_r(fm)
 *         return ((cos(x) - (self.r * cos(x - y))) /  (1.0 + (-2.0 * self.r * cos(y)) + (self.r*self.r))) * (1.0 - fabs(self.r))
 */
  }

  /* "pysndlib/generators.pyx":1590
 *         if fm != 0.0:
 *             self.r = self.clamp_rxycos_r(fm)
 *         return ((cos(x) - (self.r * cos(x - y))) /  (1.0 + (-2.0 * self.r * cos(y)) + (self.r*self.r))) * (1.0 - fabs(self.r))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_x - __pyx_v_y)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_1};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1590, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1582
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_maxr);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10SafeRxycos_5next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_5next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1582, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1582, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1582, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1582, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_4next(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_4next(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_SafeRxycos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1582, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1582, __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("pysndlib.generators.SafeRxycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1593
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_7__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1593, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1593, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1593, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1593, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_6__call__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_6__call__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1594
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1594, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1593
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1596
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1598
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1596
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1600
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1601, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_2;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1602
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val             # <<<<<<<<<<<<<<
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 */
  __pyx_v_self->r = __pyx_v_val;

  /* "pysndlib/generators.pyx":1603
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 *         self.r = self.clamp_rxycos_r(0.0)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = 0.0;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->clamp_rxycos_r(__pyx_v_self, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_3;

  /* "pysndlib/generators.pyx":1600
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1605
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1607
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_radians2hz(__pyx_v_self->frequency, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1607, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1605
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1609
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1610, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1611
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)             # <<<<<<<<<<<<<<
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_v_val, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1611, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":1612
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 *         self.r = self.clamp_rxycos_r(0.0)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.fm = 0.0;
  __pyx_t_2 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->clamp_rxycos_r(__pyx_v_self, 0, &__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":1609
 *         return clm.radians2hz(self.frequency)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(val)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1614
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_offset(self) -> cython.double:
 *         return self.ratio
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1616
 *     @property
 *     def mus_offset(self) -> cython.double:
 *         return self.ratio             # <<<<<<<<<<<<<<
 * 
 *     @mus_offset.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1614
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_offset(self) -> cython.double:
 *         return self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1618
 *         return self.ratio
 * 
 *     @mus_offset.setter             # <<<<<<<<<<<<<<
 *     def mus_offset(self, val: cython.double):
 *         self.ratio = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1619, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_10mus_offset_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r __pyx_t_2;
  double __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1620
 *     @mus_offset.setter
 *     def mus_offset(self, val: cython.double):
 *         self.ratio = val             # <<<<<<<<<<<<<<
 *         self.r = self.clamp_rxycos_r(0.0)
 * 
 */
  __pyx_v_self->ratio = __pyx_v_val;

  /* "pysndlib/generators.pyx":1621
 *     def mus_offset(self, val: cython.double):
 *         self.ratio = val
 *         self.r = self.clamp_rxycos_r(0.0)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = 0.0;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->clamp_rxycos_r(__pyx_v_self, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1621, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_3;

  /* "pysndlib/generators.pyx":1618
 *         return self.ratio
 * 
 *     @mus_offset.setter             # <<<<<<<<<<<<<<
 *     def mus_offset(self, val: cython.double):
 *         self.ratio = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.mus_offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":301
 * 
 * cdef class SafeRxycos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 301, __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("pysndlib.generators.SafeRxycos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 301, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":302
 * cdef class SafeRxycos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 302, __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("pysndlib.generators.SafeRxycos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 302, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":303
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double cutoff
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 303, __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("pysndlib.generators.SafeRxycos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 303, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":304
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double cutoff
 *     cpdef clamp_rxycos_r(self, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 304, __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("pysndlib.generators.SafeRxycos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 304, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":305
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double cutoff             # <<<<<<<<<<<<<<
 *     cpdef clamp_rxycos_r(self, cython.double fm=*)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff___get__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff___get__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->cutoff); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 305, __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("pysndlib.generators.SafeRxycos.cutoff.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff_2__set__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_10SafeRxycos_6cutoff_2__set__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 305, __pyx_L1_error)
  __pyx_v_self->cutoff = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.cutoff.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.cutoff, self.frequency, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->cutoff); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.cutoff, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.cutoff, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.cutoff, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_SafeRxycos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_138134742);
    __Pyx_GIVEREF(__pyx_int_138134742);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_138134742)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, None), state
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_SafeRxycos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_138134742);
    __Pyx_GIVEREF(__pyx_int_138134742);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_138134742)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10SafeRxycos_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10SafeRxycos_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_SafeRxycos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SafeRxycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1624
 * 
 * 
 * cpdef SafeRxycos make_safe_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a safe-rxycos generator that produces many cosines from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_165make_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_f_8pysndlib_10generators_make_safe_rxycos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_safe_rxycos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_safe_rxycos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1629
 *     frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.
 *     """
 *     return SafeRxycos(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1629, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1629, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1629, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1624
 * 
 * 
 * cpdef SafeRxycos make_safe_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a safe-rxycos generator that produces many cosines from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_165make_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_164make_safe_rxycos, "\n    creates a safe-rxycos generator that produces many cosines from \n    frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_165make_safe_rxycos = {"make_safe_rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_165make_safe_rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_164make_safe_rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_165make_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_safe_rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1624, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1624, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1624, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_safe_rxycos") < 0)) __PYX_ERR(0, 1624, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_safe_rxycos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1624, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_164make_safe_rxycos(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_164make_safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_safe_rxycos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_safe_rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_safe_rxycos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1624, __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("pysndlib.generators.make_safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1631
 *     return SafeRxycos(frequency, ratio, r)
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_167safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_safe_rxycos(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1639
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_safe_rxycos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1639, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1631
 *     return SafeRxycos(frequency, ratio, r)
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_167safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_166safe_rxycos, "\n    returns many cosines from frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.\n        \n    :param gen: safe_rxycos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_167safe_rxycos = {"safe_rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_167safe_rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_166safe_rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_167safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("safe_rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1631, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1631, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "safe_rxycos") < 0)) __PYX_ERR(0, 1631, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1631, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("safe_rxycos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1631, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_SafeRxycos, 1, "gen", 0))) __PYX_ERR(0, 1631, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_166safe_rxycos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_166safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("safe_rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_safe_rxycos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1631, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1631, __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("pysndlib.generators.safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1641
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_safe_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an safe_rxycos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_169is_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_safe_rxycos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1648
 *     :rtype: bool
 *     """
 *     return isinstance(gen, SafeRxycos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_SafeRxycos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1641
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_safe_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an safe_rxycos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_169is_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_168is_safe_rxycos, "\n    returns True if gen is an safe_rxycos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_169is_safe_rxycos = {"is_safe_rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_169is_safe_rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_168is_safe_rxycos};
static PyObject *__pyx_pw_8pysndlib_10generators_169is_safe_rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_safe_rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1641, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_safe_rxycos") < 0)) __PYX_ERR(0, 1641, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_safe_rxycos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1641, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_168is_safe_rxycos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_168is_safe_rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_safe_rxycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_safe_rxycos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1641, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1641, __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("pysndlib.generators.is_safe_rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1656
 * cdef class Ercos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = max(r, .00001)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1656, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1656, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1656, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1656, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos___init__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Ercos___init__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_v_expt_t = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1657
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.r = max(r, .00001)
 *         self.cosh_t = cosh(self.r)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1657, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":1658
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = frequency
 *         self.r = max(r, .00001)             # <<<<<<<<<<<<<<
 *         self.cosh_t = cosh(self.r)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.cosh_t, 1, -1.], clm.Polynomial.SECOND_KIND)
 */
  __pyx_t_1 = .00001;
  __Pyx_INCREF(__pyx_v_r);
  __pyx_t_2 = __pyx_v_r;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __pyx_t_5 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __pyx_t_5;
    __pyx_t_5 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1658, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":1659
 *         self.frequency = frequency
 *         self.r = max(r, .00001)
 *         self.cosh_t = cosh(self.r)             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_polywave(self.frequency, [0,self.cosh_t, 1, -1.], clm.Polynomial.SECOND_KIND)
 *         expt_t = exp(-self.r)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cosh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1659, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1659, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->cosh_t = __pyx_t_1;

  /* "pysndlib/generators.pyx":1660
 *         self.r = max(r, .00001)
 *         self.cosh_t = cosh(self.r)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.cosh_t, 1, -1.], clm.Polynomial.SECOND_KIND)             # <<<<<<<<<<<<<<
 *         expt_t = exp(-self.r)
 *         self.offset = (1.0 - expt_t) / (2.0 * expt_t)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_polywave); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->cosh_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyList_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 0, __pyx_int_0)) __PYX_ERR(0, 1660, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_4)) __PYX_ERR(0, 1660, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 2, __pyx_int_1)) __PYX_ERR(0, 1660, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_1_);
  __Pyx_GIVEREF(__pyx_float_neg_1_);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 3, __pyx_float_neg_1_)) __PYX_ERR(0, 1660, __pyx_L1_error);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(__pyx_e_8pysndlib_3clm_SECOND_KIND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_9, __pyx_t_2, __pyx_t_8, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 3+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1660, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":1661
 *         self.cosh_t = cosh(self.r)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.cosh_t, 1, -1.], clm.Polynomial.SECOND_KIND)
 *         expt_t = exp(-self.r)             # <<<<<<<<<<<<<<
 *         self.offset = (1.0 - expt_t) / (2.0 * expt_t)
 *         self.scaler = sinh(self.r) * self.offset
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_exp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_v_expt_t = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":1662
 *         self.osc = clm.make_polywave(self.frequency, [0,self.cosh_t, 1, -1.], clm.Polynomial.SECOND_KIND)
 *         expt_t = exp(-self.r)
 *         self.offset = (1.0 - expt_t) / (2.0 * expt_t)             # <<<<<<<<<<<<<<
 *         self.scaler = sinh(self.r) * self.offset
 * 
 */
  __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_v_expt_t, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyNumber_Multiply(__pyx_float_2_0, __pyx_v_expt_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->offset = __pyx_t_1;

  /* "pysndlib/generators.pyx":1663
 *         expt_t = exp(-self.r)
 *         self.offset = (1.0 - expt_t) / (2.0 * expt_t)
 *         self.scaler = sinh(self.r) * self.offset             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sinh); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->offset); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1663, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->scaler = __pyx_t_1;

  /* "pysndlib/generators.pyx":1656
 * cdef class Ercos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = max(r, .00001)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expt_t);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1665
 *         self.scaler = sinh(self.r) * self.offset
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Ercos_next(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Ercos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_polywave __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1665, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Ercos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1665, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1665, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1665, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1666
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_polywave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(__pyx_t_7 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 1666, __pyx_L1_error)
  }
  __pyx_r = ((__pyx_v_self->scaler / __pyx_t_7) - __pyx_v_self->offset);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1665
 *         self.scaler = sinh(self.r) * self.offset
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 */

  /* 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("pysndlib.generators.Ercos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ercos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ercos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1665, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1665, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1665, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1665, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ercos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_2next(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_2next(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Ercos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1665, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1665, __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("pysndlib.generators.Ercos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1668
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1668, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1668, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1668, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1668, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_4__call__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1669
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ercos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1669, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1668
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1671
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1673
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1671
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1675
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1676, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1677
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 1677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1675
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1679
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1681
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1679
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1683
 *         return self.frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1684, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;

  /* "pysndlib/generators.pyx":1685
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->frequency = __pyx_v_val;

  /* "pysndlib/generators.pyx":1683
 *         return self.frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":313
 * # --------------- ercos ---------------- #
 * cdef class Ercos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 313, __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("pysndlib.generators.Ercos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 313, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":314
 * cdef class Ercos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double cosh_t
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 314, __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("pysndlib.generators.Ercos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 314, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":315
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double cosh_t
 *     cdef public cython.double offset
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 315, __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("pysndlib.generators.Ercos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 315, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":316
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double cosh_t             # <<<<<<<<<<<<<<
 *     cdef public cython.double offset
 *     cdef public cython.double scaler
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->cosh_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 316, __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("pysndlib.generators.Ercos.cosh_t.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_6cosh_t_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 316, __pyx_L1_error)
  __pyx_v_self->cosh_t = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.cosh_t.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":317
 *     cdef public cython.double angle
 *     cdef public cython.double cosh_t
 *     cdef public cython.double offset             # <<<<<<<<<<<<<<
 *     cdef public cython.double scaler
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6offset_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6offset_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6offset___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6offset___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->offset); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 317, __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("pysndlib.generators.Ercos.offset.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_6offset_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6offset_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_6offset_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 317, __pyx_L1_error)
  __pyx_v_self->offset = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.offset.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":318
 *     cdef public cython.double cosh_t
 *     cdef public cython.double offset
 *     cdef public cython.double scaler             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_6scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6scaler___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->scaler); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 318, __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("pysndlib.generators.Ercos.scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_6scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_6scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_6scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 318, __pyx_L1_error)
  __pyx_v_self->scaler = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Ercos.scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":319
 *     cdef public cython.double offset
 *     cdef public cython.double scaler
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 319, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Ercos_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Ercos_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5Ercos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ercos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ercos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.cosh_t, self.frequency, self.offset, self.osc, self.r, self.scaler)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->cosh_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->offset); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->scaler); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.cosh_t, self.frequency, self.offset, self.osc, self.r, self.scaler)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.cosh_t, self.frequency, self.offset, self.osc, self.r, self.scaler)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.cosh_t, self.frequency, self.offset, self.osc, self.r, self.scaler)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, None), state
 */
  /*else*/ {
    __pyx_t_8 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_8;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Ercos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_237498805);
    __Pyx_GIVEREF(__pyx_int_237498805);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_237498805)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, None), state
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Ercos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_237498805);
    __Pyx_GIVEREF(__pyx_int_237498805);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_237498805)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Ercos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ercos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Ercos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Ercos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Ercos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ercos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Ercos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1688
 * 
 * 
 * cpdef Ercos make_ercos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an ercos generator (a special case of rcos) that produces
 */

static PyObject *__pyx_pw_8pysndlib_10generators_171make_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_f_8pysndlib_10generators_make_ercos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_ercos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ercos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1693
 *     many cosines from frequency with amplitude e^(-kr).
 *     """
 *     return Ercos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1693, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 1693, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ercos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1688
 * 
 * 
 * cpdef Ercos make_ercos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an ercos generator (a special case of rcos) that produces
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_171make_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_170make_ercos, "\n    creates an ercos generator (a special case of rcos) that produces \n    many cosines from frequency with amplitude e^(-kr).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_171make_ercos = {"make_ercos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_171make_ercos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_170make_ercos};
static PyObject *__pyx_pw_8pysndlib_10generators_171make_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_ercos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1688, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1688, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_ercos") < 0)) __PYX_ERR(0, 1688, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_ercos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1688, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_170make_ercos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_170make_ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_ercos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_ercos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_ercos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1688, __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("pysndlib.generators.make_ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1695
 *     return Ercos(frequency, r)
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency with amplitude e^(-kr).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_173ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_ercos(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ercos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1703
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_ercos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Ercos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1703, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1695
 *     return Ercos(frequency, r)
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency with amplitude e^(-kr).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_173ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_172ercos, "\n    returns many cosines from frequency with amplitude e^(-kr).\n        \n    :param gen: ercos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_173ercos = {"ercos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_173ercos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_172ercos};
static PyObject *__pyx_pw_8pysndlib_10generators_173ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ercos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1695, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1695, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "ercos") < 0)) __PYX_ERR(0, 1695, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Ercos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1695, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("ercos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1695, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Ercos, 1, "gen", 0))) __PYX_ERR(0, 1695, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_172ercos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_172ercos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_ercos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("ercos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_ercos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1695, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1695, __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("pysndlib.generators.ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1705
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ercos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ercos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_175is_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_ercos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1712
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Ercos)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Ercos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1705
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ercos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ercos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_175is_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_174is_ercos, "\n    returns True if gen is an ercos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_175is_ercos = {"is_ercos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_175is_ercos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_174is_ercos};
static PyObject *__pyx_pw_8pysndlib_10generators_175is_ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_ercos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1705, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_ercos") < 0)) __PYX_ERR(0, 1705, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_ercos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1705, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_174is_ercos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_174is_ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_ercos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_ercos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1705, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __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("pysndlib.generators.is_ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1719
 * cdef class Erssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Erssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Erssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1719, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1719, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1719, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1719, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1719, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb___init__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Erssb___init__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1720
 * 
 *     def __init__(self, frequency, ratio=1.0, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1720, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1720, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1721
 *     def __init__(self, frequency, ratio=1.0, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1721, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1722
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1722, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1723
 *         self.ratio = ratio
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1719
 * cdef class Erssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1726
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Erssb_next(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Erssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_cxx;
  double __pyx_v_ccmx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Erssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1726, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1727
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double cxx = cx - mx
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1728
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double cxx = cx - mx
 *         cdef cython.double ccmx = cosh(self.r) - cos(mx)
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1729
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double cxx = cx - mx             # <<<<<<<<<<<<<<
 *         cdef cython.double ccmx = cosh(self.r) - cos(mx)
 * 
 */
  __pyx_v_cxx = (__pyx_v_cx - __pyx_v_mx);

  /* "pysndlib/generators.pyx":1730
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double cxx = cx - mx
 *         cdef cython.double ccmx = cosh(self.r) - cos(mx)             # <<<<<<<<<<<<<<
 * 
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cosh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_ccmx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1732
 *         cdef cython.double ccmx = cosh(self.r) - cos(mx)
 * 
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         if fabs(ccmx) < NEARLY_ZERO:
 *             return 1.
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":1733
 * 
 *         self.angle += fm + self.frequency
 *         if fabs(ccmx) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_ccmx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 1733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1734
 *         self.angle += fm + self.frequency
 *         if fabs(ccmx) < NEARLY_ZERO:
 *             return 1.             # <<<<<<<<<<<<<<
 *         else:
 *             return ((cos(cxx)*((sinh(self.r) / ccmx) - 1.0)) - (sin(cxx)*(sin(mx) / ccmx))) / (2.0 * (1.0 / (1.0 - exp(-self.r))) - 1.0)
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1733
 * 
 *         self.angle += fm + self.frequency
 *         if fabs(ccmx) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         else:
 */
  }

  /* "pysndlib/generators.pyx":1736
 *             return 1.
 *         else:
 *             return ((cos(cxx)*((sinh(self.r) / ccmx) - 1.0)) - (sin(cxx)*(sin(mx) / ccmx))) / (2.0 * (1.0 / (1.0 - exp(-self.r))) - 1.0)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  /*else*/ {
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sinh); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_t_4 = PyFloat_FromDouble(__pyx_v_ccmx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ccmx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Subtract(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_t_4};
      __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Multiply(__pyx_float_2_0, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_7;
    goto __pyx_L0;
  }

  /* "pysndlib/generators.pyx":1726
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Erssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Erssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Erssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1726, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1726, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1726, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1726, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Erssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_2next(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_2next(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Erssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1726, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1726, __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("pysndlib.generators.Erssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1738
 *             return ((cos(cxx)*((sinh(self.r) / ccmx) - 1.0)) - (sin(cxx)*(sin(mx) / ccmx))) / (2.0 * (1.0 / (1.0 - exp(-self.r))) - 1.0)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1738, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1738, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1738, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1738, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1739
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Erssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1739, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1738
 *             return ((cos(cxx)*((sinh(self.r) / ccmx) - 1.0)) - (sin(cxx)*(sin(mx) / ccmx))) / (2.0 * (1.0 / (1.0 - exp(-self.r))) - 1.0)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":326
 * # --------------- erssb ---------------- #
 * cdef class Erssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 326, __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("pysndlib.generators.Erssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Erssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Erssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Erssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 326, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Erssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":327
 * cdef class Erssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 327, __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("pysndlib.generators.Erssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Erssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Erssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Erssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Erssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":328
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 328, __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("pysndlib.generators.Erssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Erssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Erssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Erssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 328, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Erssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":329
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 329, __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("pysndlib.generators.Erssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Erssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Erssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Erssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 329, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Erssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Erssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Erssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Erssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, None), state
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Erssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Erssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Erssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Erssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Erssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Erssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Erssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Erssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1742
 * 
 * 
 * cpdef Erssb make_erssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an erssb generator (a special case of rssb) the produces
 */

static PyObject *__pyx_pw_8pysndlib_10generators_177make_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_f_8pysndlib_10generators_make_erssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_erssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_erssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1747
 *     many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).
 *     """
 *     return Erssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1747, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1747, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1747, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Erssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1742
 * 
 * 
 * cpdef Erssb make_erssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an erssb generator (a special case of rssb) the produces
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_177make_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_176make_erssb, "\n    creates an erssb generator (a special case of rssb) the produces \n    many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_177make_erssb = {"make_erssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_177make_erssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_176make_erssb};
static PyObject *__pyx_pw_8pysndlib_10generators_177make_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_erssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1742, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1742, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1742, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_erssb") < 0)) __PYX_ERR(0, 1742, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_erssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1742, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_176make_erssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_176make_erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_erssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_erssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_erssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1742, __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("pysndlib.generators.make_erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1749
 *     return Erssb(frequency, ratio, r)
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_179erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_erssb(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_erssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1758
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_erssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Erssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1758, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1749
 *     return Erssb(frequency, ratio, r)
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_179erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_178erssb, "\n    returns many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).\n     \n    :param gen: erssb gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_179erssb = {"erssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_179erssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_178erssb};
static PyObject *__pyx_pw_8pysndlib_10generators_179erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("erssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1749, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1749, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "erssb") < 0)) __PYX_ERR(0, 1749, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Erssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1749, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("erssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1749, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Erssb, 1, "gen", 0))) __PYX_ERR(0, 1749, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_178erssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_178erssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_erssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("erssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_erssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1749, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1749, __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("pysndlib.generators.erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1760
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_erssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an erssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_181is_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_erssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1767
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Erssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Erssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1760
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_erssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an erssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_181is_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_180is_erssb, "\n    returns True if gen is an erssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_181is_erssb = {"is_erssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_181is_erssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_180is_erssb};
static PyObject *__pyx_pw_8pysndlib_10generators_181is_erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_erssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1760, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_erssb") < 0)) __PYX_ERR(0, 1760, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_erssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1760, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_180is_erssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_180is_erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_erssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_erssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1760, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1760, __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("pysndlib.generators.is_erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1780
 * cdef class R2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1780, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1780, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1780, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1780, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos___init__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5R2cos___init__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __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;

  /* "pysndlib/generators.pyx":1781
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         if (self.r*self.r) >= 1.0:
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1781, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1781, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1782
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         if (self.r*self.r) >= 1.0:
 *             self.r = 0.9999999
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1782, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1783
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         if (self.r*self.r) >= 1.0:             # <<<<<<<<<<<<<<
 *             self.r = 0.9999999
 *         self.angle = 0.0
 */
  __pyx_t_3 = ((__pyx_v_self->r * __pyx_v_self->r) >= 1.0);
  if (__pyx_t_3) {

    /* "pysndlib/generators.pyx":1784
 *         self.r = r
 *         if (self.r*self.r) >= 1.0:
 *             self.r = 0.9999999             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
    __pyx_v_self->r = 0.9999999;

    /* "pysndlib/generators.pyx":1783
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         if (self.r*self.r) >= 1.0:             # <<<<<<<<<<<<<<
 *             self.r = 0.9999999
 *         self.angle = 0.0
 */
  }

  /* "pysndlib/generators.pyx":1785
 *         if (self.r*self.r) >= 1.0:
 *             self.r = 0.9999999
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":1780
 * cdef class R2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1787
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5R2cos_next(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5R2cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5R2cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1787, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1788
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return ((cosh(self.r * cos(x)) * cos(self.r * sin(x))) - 1.0) / (cosh(self.r) - 1.0)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":1789
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return ((cosh(self.r * cos(x)) * cos(self.r * sin(x))) - 1.0) / (cosh(self.r) - 1.0)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":1790
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 *         return ((cosh(self.r * cos(x)) * cos(self.r * sin(x))) - 1.0) / (cosh(self.r) - 1.0)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cosh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_5, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cosh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_5, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1787
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.R2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1787, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1787, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1787, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1787, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_2next(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_2next(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_R2cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1787, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1787, __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("pysndlib.generators.R2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1792
 *         return ((cosh(self.r * cos(x)) * cos(self.r * sin(x))) - 1.0) / (cosh(self.r) - 1.0)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1792, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1792, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1792, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1792, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1793
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1793, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1792
 *         return ((cosh(self.r * cos(x)) * cos(self.r * sin(x))) - 1.0) / (cosh(self.r) - 1.0)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":341
 * # --------------- r2cos ---------------- #
 * cdef class R2cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 341, __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("pysndlib.generators.R2cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 341, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":342
 * cdef class R2cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 342, __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("pysndlib.generators.R2cos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 342, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2cos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":343
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 343, __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("pysndlib.generators.R2cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 343, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_R2cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_R2cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1795
 *         return self.next(fm)
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2sin generator that produces many even-numbered
 */

static PyObject *__pyx_pw_8pysndlib_10generators_183make_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_f_8pysndlib_10generators_make_r2cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1800
 *     sines from frequency with amplitude r^(2k)/(2k)!.
 *     """
 *     return R2cos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1800, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 1800, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1795
 *         return self.next(fm)
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2sin generator that produces many even-numbered
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_183make_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_182make_r2cos, "\n    creates an r2sin generator that produces many even-numbered \n    sines from frequency with amplitude r^(2k)/(2k)!.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_183make_r2cos = {"make_r2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_183make_r2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_182make_r2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_183make_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_r2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1795, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1795, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_r2cos") < 0)) __PYX_ERR(0, 1795, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_r2cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1795, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_182make_r2cos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_182make_r2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_r2cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_r2cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1795, __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("pysndlib.generators.make_r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1802
 *     return R2cos(frequency, r)
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_185r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2cos(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1812
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_r2cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1812, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1802
 *     return R2cos(frequency, r)
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_185r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_184r2cos, "\n    returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!.\n    \n        \n    :param gen: r2cos gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_185r2cos = {"r2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_185r2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_184r2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_185r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("r2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1802, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1802, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "r2cos") < 0)) __PYX_ERR(0, 1802, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_R2cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1802, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("r2cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1802, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_R2cos, 1, "gen", 0))) __PYX_ERR(0, 1802, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_184r2cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_184r2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_r2cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("r2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_r2cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1802, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1802, __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("pysndlib.generators.r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1814
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_187is_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1821
 *     :rtype: bool
 *     """
 *     return isinstance(gen, R2cos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- r2ssb ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_R2cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1814
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_187is_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_186is_r2cos, "\n    returns True if gen is an r2cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_187is_r2cos = {"is_r2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_187is_r2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_186is_r2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_187is_r2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_r2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1814, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_r2cos") < 0)) __PYX_ERR(0, 1814, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_r2cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1814, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_186is_r2cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_186is_r2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_r2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_r2cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1814, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1814, __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("pysndlib.generators.is_r2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1827
 * cdef class R2ssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1827, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1827, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1827, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1827, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 1827, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb___init__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5R2ssb___init__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":1828
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1828, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1828, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":1829
 *     def __init__(self, frequency, ratio=1., r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1829, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":1830
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1830, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":1827
 * cdef class R2ssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1832
 *         self.r = r
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5R2ssb_next(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5R2ssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_a;
  double __pyx_v_asinx;
  double __pyx_v_acosx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5R2ssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1832, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1832, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1832, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1833
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double a = self.r
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1834
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double asinx = a * sin(mx)
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":1835
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double a = self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double asinx = a * sin(mx)
 *         cdef cython.double acosx = a * cos(mx)
 */
  __pyx_t_7 = __pyx_v_self->r;
  __pyx_v_a = __pyx_t_7;

  /* "pysndlib/generators.pyx":1836
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double a = self.r
 *         cdef cython.double asinx = a * sin(mx)             # <<<<<<<<<<<<<<
 *         cdef cython.double acosx = a * cos(mx)
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_asinx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1837
 *         cdef cython.double a = self.r
 *         cdef cython.double asinx = a * sin(mx)
 *         cdef cython.double acosx = a * cos(mx)             # <<<<<<<<<<<<<<
 * 
 *         self.angle += self.frequency + fm
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1837, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_acosx = __pyx_t_7;

  /* "pysndlib/generators.pyx":1839
 *         cdef cython.double acosx = a * cos(mx)
 * 
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return ((cos(cx) * cosh(acosx) * cos(asinx)) - (sin(cx) * sinh(acosx) * sin(asinx))) / cosh(a)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":1840
 * 
 *         self.angle += self.frequency + fm
 *         return ((cos(cx) * cosh(acosx) * cos(asinx)) - (sin(cx) * sinh(acosx) * sin(asinx))) / cosh(a)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cosh); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_acosx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_asinx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sinh); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_acosx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_asinx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cosh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1832
 *         self.r = r
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2ssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2ssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1832, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1832, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1832, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1832, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_2next(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_2next(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_R2ssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1832, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1832, __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("pysndlib.generators.R2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1842
 *         return ((cos(cx) * cosh(acosx) * cos(asinx)) - (sin(cx) * sinh(acosx) * sin(asinx))) / cosh(a)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1842, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1842, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1842, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1842, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_4__call__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1843
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2ssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1843, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1842
 *         return ((cos(cx) * cosh(acosx) * cos(asinx)) - (sin(cx) * sinh(acosx) * sin(asinx))) / cosh(a)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":351
 * 
 * cdef class R2ssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 351, __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("pysndlib.generators.R2ssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 351, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":352
 * cdef class R2ssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 352, __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("pysndlib.generators.R2ssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 352, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":353
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 353, __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("pysndlib.generators.R2ssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 353, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":354
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 354, __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("pysndlib.generators.R2ssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 354, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":355
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_3osc___get__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 355, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5R2ssb_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2ssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2ssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.osc, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.osc, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.osc, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.osc, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, None), state
 */
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_R2ssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_153277992);
    __Pyx_GIVEREF(__pyx_int_153277992);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_153277992)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, None), state
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_R2ssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_153277992);
    __Pyx_GIVEREF(__pyx_int_153277992);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_153277992)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5R2ssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2ssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5R2ssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5R2ssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5R2ssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2ssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2ssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1845
 *         return self.next(fm)
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2ssb generator that produces many even-numbered sinusoids
 */

static PyObject *__pyx_pw_8pysndlib_10generators_189make_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_f_8pysndlib_10generators_make_r2ssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2ssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2ssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":1850
 *     from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.
 *     """
 *     return R2ssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1850, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 1850, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 1850, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2ssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1845
 *         return self.next(fm)
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2ssb generator that produces many even-numbered sinusoids
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_189make_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_188make_r2ssb, "\n    creates an r2ssb generator that produces many even-numbered sinusoids \n    from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_189make_r2ssb = {"make_r2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_189make_r2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_188make_r2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_189make_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_r2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1845, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1845, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1845, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_r2ssb") < 0)) __PYX_ERR(0, 1845, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_r2ssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 1845, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_188make_r2ssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_188make_r2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_r2ssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_r2ssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1845, __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("pysndlib.generators.make_r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1852
 *     return R2ssb(frequency, ratio, r)
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sinusoids from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_191r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2ssb(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2ssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1860
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_r2ssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2ssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1860, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1852
 *     return R2ssb(frequency, ratio, r)
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sinusoids from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_191r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_190r2ssb, "\n    returns many even-numbered sinusoids from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.\n    \n    :param gen: r2ssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_191r2ssb = {"r2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_191r2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_190r2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_191r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("r2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1852, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1852, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "r2ssb") < 0)) __PYX_ERR(0, 1852, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_R2ssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1852, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("r2ssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1852, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_R2ssb, 1, "gen", 0))) __PYX_ERR(0, 1852, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_190r2ssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_190r2ssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_r2ssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("r2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_r2ssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1852, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1852, __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("pysndlib.generators.r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1862
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2ssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_193is_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2ssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1869
 *     :rtype: bool
 *     """
 *     return isinstance(gen, R2ssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_R2ssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1862
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2ssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_193is_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_192is_r2ssb, "\n    returns True if gen is an r2ssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_193is_r2ssb = {"is_r2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_193is_r2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_192is_r2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_193is_r2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_r2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1862, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_r2ssb") < 0)) __PYX_ERR(0, 1862, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_r2ssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1862, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_192is_r2ssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_192is_r2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_r2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_r2ssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1862, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1862, __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("pysndlib.generators.is_r2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1876
 * cdef class Eoddcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1876, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1876, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1876, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1876, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos___init__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Eoddcos___init__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1877
 * 
 *     def __init__(self, frequency, r=1.):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.osc = clm.make_oscil(self.frequency, .5*PI)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1877, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":1878
 *     def __init__(self, frequency, r=1.):
 *         self.frequency = frequency
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(self.frequency, .5*PI)
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1878, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":1879
 *         self.frequency = frequency
 *         self.r = r
 *         self.osc = clm.make_oscil(self.frequency, .5*PI)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((.5 * __pyx_v_8pysndlib_10generators_PI)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1879, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 1879, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1876
 * cdef class Eoddcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1882
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Eoddcos_next(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Eoddcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_sinha;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1882, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Eoddcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1882, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1882, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1883
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double sinha = sinh(self.r)             # <<<<<<<<<<<<<<
 *         if clm.is_zero(sinha):
 *             return 0.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sinh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1883, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sinha = __pyx_t_7;

  /* "pysndlib/generators.pyx":1884
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):             # <<<<<<<<<<<<<<
 *             return 0.0
 *         return atan2(clm.oscil(self.osc, fm), sinha) / atan2(1.0, sinha)
 */
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_is_zero(__pyx_v_sinha, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1884, __pyx_L1_error)
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":1885
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 *             return 0.0             # <<<<<<<<<<<<<<
 *         return atan2(clm.oscil(self.osc, fm), sinha) / atan2(1.0, sinha)
 * 
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":1884
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):             # <<<<<<<<<<<<<<
 *             return 0.0
 *         return atan2(clm.oscil(self.osc, fm), sinha) / atan2(1.0, sinha)
 */
  }

  /* "pysndlib/generators.pyx":1886
 *         if clm.is_zero(sinha):
 *             return 0.0
 *         return atan2(clm.oscil(self.osc, fm), sinha) / atan2(1.0, sinha)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_atan2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_9.__pyx_n = 1;
  __pyx_t_9.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_4), 0, &__pyx_t_9); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_sinha); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1886, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_atan2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sinha); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_float_1_0, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1886, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1882
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 */

  /* 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("pysndlib.generators.Eoddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Eoddcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Eoddcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1882, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1882, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1882, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1882, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_2next(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_2next(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Eoddcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1882, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1882, __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("pysndlib.generators.Eoddcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1889
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1889, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1889, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1889, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1889, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1890
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Eoddcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1890, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1889
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1892
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1894
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1892
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1896
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1897, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1898
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 1898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1896
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1900
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1902
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1900
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1904
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1905, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1906
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1904
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":363
 * 
 * cdef class Eoddcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 363, __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("pysndlib.generators.Eoddcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 363, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":364
 * cdef class Eoddcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 364, __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("pysndlib.generators.Eoddcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 364, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":365
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 365, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_7Eoddcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Eoddcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Eoddcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Eoddcos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_152846879);
    __Pyx_GIVEREF(__pyx_int_152846879);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_152846879)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, None), state
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Eoddcos); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_152846879);
    __Pyx_GIVEREF(__pyx_int_152846879);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_152846879)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Eoddcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Eoddcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Eoddcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Eoddcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Eoddcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Eoddcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Eoddcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1909
 * 
 * 
 * cpdef Eoddcos make_eoddcos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an eoddcos generator that produces many cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_195make_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_f_8pysndlib_10generators_make_eoddcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_eoddcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_eoddcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1914
 *     from spaced by frequency with amplitude e^(-r).
 *     """
 *     return Eoddcos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1914, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 1914, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Eoddcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1909
 * 
 * 
 * cpdef Eoddcos make_eoddcos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an eoddcos generator that produces many cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_195make_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_194make_eoddcos, "\n    creates an eoddcos generator that produces many cosines \n    from spaced by frequency with amplitude e^(-r).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_195make_eoddcos = {"make_eoddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_195make_eoddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_194make_eoddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_195make_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_eoddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1909, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1909, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_eoddcos") < 0)) __PYX_ERR(0, 1909, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_eoddcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1909, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_194make_eoddcos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_194make_eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_eoddcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_eoddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_eoddcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1909, __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("pysndlib.generators.make_eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1916
 *     return Eoddcos(frequency, r)
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude e^(-r).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_197eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_eoddcos(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_eoddcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1924
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_eoddcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Eoddcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1924, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1916
 *     return Eoddcos(frequency, r)
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude e^(-r).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_197eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_196eoddcos, "\n    returns many cosines from spaced by frequency with amplitude e^(-r).\n        \n    :param gen: eoddcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_197eoddcos = {"eoddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_197eoddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_196eoddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_197eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("eoddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1916, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1916, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "eoddcos") < 0)) __PYX_ERR(0, 1916, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1916, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("eoddcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1916, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Eoddcos, 1, "gen", 0))) __PYX_ERR(0, 1916, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_196eoddcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_196eoddcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_eoddcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("eoddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_eoddcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1916, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1916, __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("pysndlib.generators.eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1926
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_eoddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an eoddcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_199is_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_eoddcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":1933
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Eoddcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- koddcos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Eoddcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1926
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_eoddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an eoddcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_199is_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_198is_eoddcos, "\n    returns True if gen is an eoddcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_199is_eoddcos = {"is_eoddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_199is_eoddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_198is_eoddcos};
static PyObject *__pyx_pw_8pysndlib_10generators_199is_eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_eoddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1926, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_eoddcos") < 0)) __PYX_ERR(0, 1926, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_eoddcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1926, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_198is_eoddcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_198is_eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_eoddcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_eoddcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1926, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1926, __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("pysndlib.generators.is_eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1942
 * cdef class Rkcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1942, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1942, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 1942, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1942, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos___init__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Rkcos___init__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":1943
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(self.frequency)
 *         self.r = clm.clamp(r, -.99999, .99999)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1943, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":1944
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.99999, .99999)
 *         self.norm = log(1.0 - fabs(self.r))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 1944, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1945
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)
 *         self.r = clm.clamp(r, -.99999, .99999)             # <<<<<<<<<<<<<<
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1945, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1945, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":1946
 *         self.osc = clm.make_oscil(self.frequency)
 *         self.r = clm.clamp(r, -.99999, .99999)
 *         self.norm = log(1.0 - fabs(self.r))             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_fabs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->norm = __pyx_t_1;

  /* "pysndlib/generators.pyx":1942
 * cdef class Rkcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1948
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Rkcos_next(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rkcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cs;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Rkcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1948, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1948, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":1949
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cs = clm.oscil(self.osc, fm)             # <<<<<<<<<<<<<<
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_cs = __pyx_t_7;

  /* "pysndlib/generators.pyx":1950
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(((1.0 + ((-2.0 * __pyx_v_self->r) * __pyx_v_cs)) + (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float__5, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1948
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 */

  /* 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("pysndlib.generators.Rkcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1948, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 1948, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1948, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1948, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_2next(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_2next(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rkcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1948, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1948, __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("pysndlib.generators.Rkcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1952
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1952, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 1952, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1952, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 1952, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":1953
 * 
 *     def __call__(self, fm: cython.double=0.):
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1953, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1952
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1955
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1957
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1957, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1955
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1959
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1960, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1961
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 1961, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1959
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1963
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1965
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1963
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1967
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1968, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1969
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1969, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 1969, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":1967
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1971
 *         self.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":1973
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1973, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1971
 *         self.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1975
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1976, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":1977
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1977, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1977, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":1975
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":374
 * 
 * cdef class Rkcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 374, __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("pysndlib.generators.Rkcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 374, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":375
 * cdef class Rkcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 375, __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("pysndlib.generators.Rkcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 375, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":376
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 376, __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("pysndlib.generators.Rkcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 376, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":377
 *     cdef public cython.double r
 *     cdef public cython.double norm
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 377, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5Rkcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.norm, self.osc, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rkcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_61524905);
    __Pyx_GIVEREF(__pyx_int_61524905);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_61524905)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, None), state
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Rkcos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_61524905);
    __Pyx_GIVEREF(__pyx_int_61524905);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_61524905)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1980
 * 
 * 
 * cpdef Rkcos make_rkcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkcos generator that produces many cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_201make_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_f_8pysndlib_10generators_make_rkcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":1985
 *     from spaced by frequency with amplitude (r^k)/k.
 *     """
 *     return Rkcos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 1985, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 1985, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1980
 * 
 * 
 * cpdef Rkcos make_rkcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkcos generator that produces many cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_201make_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_200make_rkcos, "\n    creates an rkcos generator that produces many cosines \n    from spaced by frequency with amplitude (r^k)/k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_201make_rkcos = {"make_rkcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_201make_rkcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_200make_rkcos};
static PyObject *__pyx_pw_8pysndlib_10generators_201make_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rkcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1980, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1980, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rkcos") < 0)) __PYX_ERR(0, 1980, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rkcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 1980, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_200make_rkcos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_200make_rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rkcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rkcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1980, __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("pysndlib.generators.make_rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1987
 *     return Rkcos(frequency, r)
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude (r^k)/k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_203rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkcos(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":1995
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rkcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1995, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1987
 *     return Rkcos(frequency, r)
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude (r^k)/k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_203rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_202rkcos, "\n    returns many cosines from spaced by frequency with amplitude (r^k)/k.\n        \n    :param gen: rkcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_203rkcos = {"rkcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_203rkcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_202rkcos};
static PyObject *__pyx_pw_8pysndlib_10generators_203rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rkcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1987, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1987, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rkcos") < 0)) __PYX_ERR(0, 1987, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rkcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1987, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rkcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 1987, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rkcos, 1, "gen", 0))) __PYX_ERR(0, 1987, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_202rkcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_202rkcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rkcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rkcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rkcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1987, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1987, __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("pysndlib.generators.rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":1997
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_205is_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2004
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rkcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rkcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":1997
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_205is_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_204is_rkcos, "\n    returns True if gen is an rkcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_205is_rkcos = {"is_rkcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_205is_rkcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_204is_rkcos};
static PyObject *__pyx_pw_8pysndlib_10generators_205is_rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rkcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1997, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rkcos") < 0)) __PYX_ERR(0, 1997, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rkcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 1997, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_204is_rkcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_204is_rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rkcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rkcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1997, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1997, __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("pysndlib.generators.is_rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2010
 * cdef class Rksin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = clm.clamp(r, .00001, .99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rksin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rksin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2010, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2010, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2010, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2010, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin___init__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Rksin___init__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2011
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, .00001, .99999)
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2011, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2011, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2012
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = clm.clamp(r, .00001, .99999)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2012, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2012, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float__00001, __pyx_float__99999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2012, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2012, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2013
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = clm.clamp(r, .00001, .99999)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2010
 * cdef class Rksin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = clm.clamp(r, .00001, .99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2015
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Rksin_next(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rksin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Rksin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2015, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2015, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2015, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2016
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return  atan2(self.r*sin(x), 1.0 - (self.r * cos(x))) / atan2(self.r*sin(acos(self.r)), (1.0 - (self.r * self.r)))
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2017
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return  atan2(self.r*sin(x), 1.0 - (self.r * cos(x))) / atan2(self.r*sin(acos(self.r)), (1.0 - (self.r * self.r)))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2018
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         return  atan2(self.r*sin(x), 1.0 - (self.r * cos(x))) / atan2(self.r*sin(acos(self.r)), (1.0 - (self.r * self.r)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_atan2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_t_5, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_atan2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_acos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
    __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyFloat_FromDouble((1.0 - (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2018, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2015
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rksin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rksin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2015, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2015, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2015, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2015, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_2next(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_2next(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rksin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2015, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2015, __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("pysndlib.generators.Rksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2020
 *         return  atan2(self.r*sin(x), 1.0 - (self.r * cos(x))) / atan2(self.r*sin(acos(self.r)), (1.0 - (self.r * self.r)))
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2020, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2020, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2020, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2020, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_4__call__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2021
 * 
 *     def __call__(self, fm: cython.double=0.):
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rksin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2021, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2020
 *         return  atan2(self.r*sin(x), 1.0 - (self.r * cos(x))) / atan2(self.r*sin(acos(self.r)), (1.0 - (self.r * self.r)))
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2023
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2025
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2023
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2027
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, .00001, .99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2028, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rksin.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Rksin_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2029
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, .00001, .99999)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float__00001, __pyx_float__99999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2029, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":2027
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, .00001, .99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":386
 * cdef class Rksin(CLMGenerator):
 * 
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 386, __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("pysndlib.generators.Rksin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rksin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rksin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rksin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 386, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rksin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":387
 * 
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 387, __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("pysndlib.generators.Rksin.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rksin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rksin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rksin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 387, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rksin.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":388
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 388, __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("pysndlib.generators.Rksin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rksin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rksin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rksin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 388, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rksin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rksin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rksin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rksin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, None), state
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Rksin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rksin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rksin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rksin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rksin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rksin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rksin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rksin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2032
 * 
 * 
 * cpdef Rksin make_rksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_207make_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_f_8pysndlib_10generators_make_rksin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rksin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rksin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2036
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 *     """
 *     return Rksin(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2036, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2036, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rksin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2036, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2032
 * 
 * 
 * cpdef Rksin make_rksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_207make_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_206make_rksin, "\n    creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_207make_rksin = {"make_rksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_207make_rksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_206make_rksin};
static PyObject *__pyx_pw_8pysndlib_10generators_207make_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2032, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2032, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rksin") < 0)) __PYX_ERR(0, 2032, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rksin", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2032, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_206make_rksin(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_206make_rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rksin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rksin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2032, __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("pysndlib.generators.make_rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2038
 *     return Rksin(frequency, r)
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from spaced by frequency with amplitude (r^k)/k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_209rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rksin(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rksin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2047
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rksin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rksin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2047, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2038
 *     return Rksin(frequency, r)
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from spaced by frequency with amplitude (r^k)/k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_209rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_208rksin, "\n    returns many sines from spaced by frequency with amplitude (r^k)/k.\n    \n    :param gen: rksin gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_209rksin = {"rksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_209rksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_208rksin};
static PyObject *__pyx_pw_8pysndlib_10generators_209rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rksin") < 0)) __PYX_ERR(0, 2038, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rksin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rksin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2038, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rksin, 1, "gen", 0))) __PYX_ERR(0, 2038, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_208rksin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_208rksin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rksin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rksin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2038, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2038, __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("pysndlib.generators.rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2049
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rksin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_211is_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rksin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2056
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rksin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rksin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2049
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rksin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_211is_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_210is_rksin, "\n    returns True if gen is an rksin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_211is_rksin = {"is_rksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_211is_rksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_210is_rksin};
static PyObject *__pyx_pw_8pysndlib_10generators_211is_rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rksin") < 0)) __PYX_ERR(0, 2049, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rksin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2049, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_210is_rksin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_210is_rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rksin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2049, __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("pysndlib.generators.is_rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2064
 * cdef class Rkssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2064, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2064, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2064, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2064, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2064, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb___init__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Rkssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2065
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2065, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2065, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2066
 *     def __init__(self, frequency, ratio=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ratio, __pyx_v_ratio) < 0) __PYX_ERR(0, 2066, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2067
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2067, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2068
 *         self.ratio = ratio
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_float_0_0) < 0) __PYX_ERR(0, 2068, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2064
 * cdef class Rkssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2070
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Rkssb_next(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Rkssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_angle1;
  double __pyx_v_angle2;
  double __pyx_v_carsin;
  double __pyx_v_canrcos;
  double __pyx_v_den;
  double __pyx_v_sumsin;
  double __pyx_v_sumcos;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2070, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Rkssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2070, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2070, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2071
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double angle1 = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2071, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_angle1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2072
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_ratio); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2072, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2072, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_angle2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2073
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2073, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2073, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_carsin = __pyx_t_7;

  /* "pysndlib/generators.pyx":2074
 *         cdef cython.double angle2 = angle1 * self.ratio
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_angle1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2074, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_canrcos = __pyx_t_7;

  /* "pysndlib/generators.pyx":2075
 *         cdef cython.double carsin = sin(angle1)
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 */
  __pyx_t_4 = PyFloat_FromDouble((1.0 + (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2075, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":2076
 *         cdef cython.double canrcos = sin(angle1)
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)             # <<<<<<<<<<<<<<
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2076, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2076, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_sumsin = __pyx_t_7;

  /* "pysndlib/generators.pyx":2077
 *         cdef cython.double den = 1.0 + (self.r * self.r) + (-2.0 * self.r * cos(angle2))
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_angle2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_2};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_1, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2077, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_sumcos = __pyx_t_7;

  /* "pysndlib/generators.pyx":2078
 *         cdef cython.double sumsin = self.r * sin(angle2)
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_fm + __pyx_v_self->frequency)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_t_4) < 0) __PYX_ERR(0, 2078, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":2079
 *         cdef cython.double sumcos = 1.0 - (self.r * cos(angle2))
 *         self.angle += fm + self.frequency
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_7 = (__pyx_v_canrcos * __pyx_v_sumcos);
  __pyx_t_9 = (2.0 * __pyx_v_den);
  if (unlikely(__pyx_t_9 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2079, __pyx_L1_error)
  }
  __pyx_r = ((__pyx_v_carsin * __pyx_v_sumsin) - (__pyx_t_7 / __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2070
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2070, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2070, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2070, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2070, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_2next(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rkssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2070, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2070, __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("pysndlib.generators.Rkssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2081
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2081, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2081, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2081, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2081, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2082
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2082, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2082, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2081
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2084
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2086
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2084
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2088
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2089, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2090
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__99999, __pyx_float__99999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2090, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":2088
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.99999, .99999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":396
 * 
 * cdef class Rkssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 396, __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("pysndlib.generators.Rkssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 396, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":397
 * cdef class Rkssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 397, __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("pysndlib.generators.Rkssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 397, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":398
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 398, __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("pysndlib.generators.Rkssb.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 398, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":399
 *     cdef public cython.double r
 *     cdef public cython.double norm
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 399, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5Rkssb_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.norm, self.osc, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.norm, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, None), state
 */
  /*else*/ {
    __pyx_t_5 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rkssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_61524905);
    __Pyx_GIVEREF(__pyx_int_61524905);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_61524905)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, None), state
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Rkssb); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_61524905);
    __Pyx_GIVEREF(__pyx_int_61524905);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_61524905)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Rkssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Rkssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Rkssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Rkssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2093
 * 
 * 
 * cpdef Rkssb make_rkssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkssb generator that produces many sinusoids from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_213make_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_f_8pysndlib_10generators_make_rkssb(PyObject *__pyx_v_frequency, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkssb *__pyx_optional_args) {
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_ratio = __pyx_optional_args->ratio;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2098
 *     frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 *     """
 *     return Rkssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2098, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 2098, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 2098, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2093
 * 
 * 
 * cpdef Rkssb make_rkssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkssb generator that produces many sinusoids from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_213make_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_212make_rkssb, "\n    creates an rkssb generator that produces many sinusoids from \n    frequency from spaced by frequency * ratio with amplitude (r^k)/k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_213make_rkssb = {"make_rkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_213make_rkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_212make_rkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_213make_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2093, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2093, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2093, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rkssb") < 0)) __PYX_ERR(0, 2093, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rkssb", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2093, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_212make_rkssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_212make_rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rkssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rkssb(__pyx_v_frequency, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2093, __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("pysndlib.generators.make_rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2100
 *     return Rkssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_215rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkssb(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2109
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rkssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2109, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2100
 *     return Rkssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_215rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_214rkssb, "\n    returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.\n        \n    :param gen: rkssb gen\n    :param fm: fm input\n    :rtype: float\n\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_215rkssb = {"rkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_215rkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_214rkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_215rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2100, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2100, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rkssb") < 0)) __PYX_ERR(0, 2100, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rkssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2100, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rkssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2100, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rkssb, 1, "gen", 0))) __PYX_ERR(0, 2100, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_214rkssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_214rkssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rkssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rkssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2100, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2100, __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("pysndlib.generators.rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2111
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_217is_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2118
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rkssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- rk!cos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rkssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2111
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_217is_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_216is_rkssb, "\n    returns True if gen is an rkssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_217is_rkssb = {"is_rkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_217is_rkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_216is_rkssb};
static PyObject *__pyx_pw_8pysndlib_10generators_217is_rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2111, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rkssb") < 0)) __PYX_ERR(0, 2111, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rkssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2111, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_216is_rkssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_216is_rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rkssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rkssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2111, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2111, __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("pysndlib.generators.is_rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2124
 * cdef class Rkfcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2124, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2124, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos___init__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Rkfcos___init__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2125
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2125, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2125, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2126
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2126, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2127
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_exp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_fabs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (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;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __pyx_t_6 = NULL;
  __pyx_t_9 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_9 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2127, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":2128
 *         self.r = r
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2124
 * cdef class Rkfcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2130
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Rkfcos_next(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rkfcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Rkfcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2130, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2130, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2131
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return ((exp(self.r*cos(x)) * cos(self.r*sin(x))) - 1.0) * self.norm
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2132
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return ((exp(self.r*cos(x)) * cos(self.r*sin(x))) - 1.0) * self.norm
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2133
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         return ((exp(self.r*cos(x)) * cos(self.r*sin(x))) - 1.0) * self.norm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2133, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_5, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2130
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2130, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2130, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2130, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2130, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_2next(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_2next(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rkfcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2130, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2130, __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("pysndlib.generators.Rkfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2135
 *         return ((exp(self.r*cos(x)) * cos(self.r*sin(x))) - 1.0) * self.norm
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2135, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2135, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2135, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2135, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2136
 * 
 *     def __call__(self, fm: cython.double=0.):
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkfcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2136, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2136, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2135
 *         return ((exp(self.r*cos(x)) * cos(self.r*sin(x))) - 1.0) * self.norm
 * 
 *     def __call__(self, fm: cython.double=0.):             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2138
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2140
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.angle             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2138
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.angle
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2142
 *         return self.angle
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.angle = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2143, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;

  /* "pysndlib/generators.pyx":2144
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.angle = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_v_self->angle = __pyx_v_val;

  /* "pysndlib/generators.pyx":2142
 *         return self.angle
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.angle = val
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2146
 *         self.angle = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2148
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2146
 *         self.angle = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2150
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2151, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2152
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 */
  __pyx_v_self->r = __pyx_v_val;

  /* "pysndlib/generators.pyx":2153
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )             # <<<<<<<<<<<<<<
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->norm = __pyx_t_8;

  /* "pysndlib/generators.pyx":2150
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":408
 * cdef class Rkfcos(CLMGenerator):
 * 
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 408, __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("pysndlib.generators.Rkfcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 408, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":409
 * 
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 409, __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("pysndlib.generators.Rkfcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 409, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":410
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 410, __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("pysndlib.generators.Rkfcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 410, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":411
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 411, __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("pysndlib.generators.Rkfcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 411, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Rkfcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_108802371);
    __Pyx_GIVEREF(__pyx_int_108802371);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_108802371)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, None), state
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rkfcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_108802371);
    __Pyx_GIVEREF(__pyx_int_108802371);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_108802371)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkfcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2155
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfcos (rkf!os) generator that produces many
 */

static PyObject *__pyx_pw_8pysndlib_10generators_219make_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_f_8pysndlib_10generators_make_rkfcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkfcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkfcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2160
 *     cosines spaced by frequency with amplitude (r^k)/k!.
 *     """
 *     return Rkfcos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm = 0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2160, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2160, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2155
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfcos (rkf!os) generator that produces many
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_219make_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_218make_rkfcos, "\n    creates an rkfcos (rkf!os) generator that produces many \n    cosines spaced by frequency with amplitude (r^k)/k!.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_219make_rkfcos = {"make_rkfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_219make_rkfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_218make_rkfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_219make_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rkfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2155, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2155, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rkfcos") < 0)) __PYX_ERR(0, 2155, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rkfcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2155, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_218make_rkfcos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_218make_rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rkfcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rkfcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2155, __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("pysndlib.generators.make_rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2162
 *     return Rkfcos(frequency, r)
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (r^k)/k!.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_221rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkfcos(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2171
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rkfcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkfcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2171, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2162
 *     return Rkfcos(frequency, r)
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (r^k)/k!.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_221rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_220rkfcos, "\n    returns many cosines spaced by frequency with amplitude (r^k)/k!.\n       \n    :param gen: rkfcos gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_221rkfcos = {"rkfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_221rkfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_220rkfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_221rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rkfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2162, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2162, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rkfcos") < 0)) __PYX_ERR(0, 2162, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2162, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rkfcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2162, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rkfcos, 1, "gen", 0))) __PYX_ERR(0, 2162, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_220rkfcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_220rkfcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rkfcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rkfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rkfcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2162, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2162, __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("pysndlib.generators.rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2173
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_223is_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkfcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2180
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rkfcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rkfcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2173
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_223is_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_222is_rkfcos, "\n    returns True if gen is an rkfcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_223is_rkfcos = {"is_rkfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_223is_rkfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_222is_rkfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_223is_rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rkfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2173, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rkfcos") < 0)) __PYX_ERR(0, 2173, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rkfcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2173, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_222is_rkfcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_222is_rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rkfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rkfcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2173, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __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("pysndlib.generators.is_rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2190
 * cdef class Rkfssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2190, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2190, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2190, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2190, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2190, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb___init__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Rkfssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2191
 * 
 *     def __init__(self, frequency, ratio=1.0, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2191, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2191, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2192
 *     def __init__(self, frequency, ratio=1.0, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2192, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":2193
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2193, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2194
 *         self.ratio = ratio
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2190
 * cdef class Rkfssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2197
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Rkfssb_next(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Rkfssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_ercosmx;
  double __pyx_v_rsinmx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2197, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Rkfssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2198
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double ercosmx = exp(self.r*cos(mx))
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2199
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cdef cython.double ercosmx = exp(self.r*cos(mx))
 *         cdef cython.double rsinmx = self.r * sin(mx)
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":2200
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double ercosmx = exp(self.r*cos(mx))             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinmx = self.r * sin(mx)
 *         self.angle += fm + self.frequency
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2200, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_ercosmx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2201
 *         cdef cython.double mx = cx * self.ratio
 *         cdef cython.double ercosmx = exp(self.r*cos(mx))
 *         cdef cython.double rsinmx = self.r * sin(mx)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_rsinmx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2202
 *         cdef cython.double ercosmx = exp(self.r*cos(mx))
 *         cdef cython.double rsinmx = self.r * sin(mx)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 * 
 *         return (cos(cx) * ercosmx * cos(rsinmx) - sin(cx) * ercosmx * sin(rsinmx)) / exp(fabs(self.r))
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2204
 *         self.angle += fm + self.frequency
 * 
 *         return (cos(cx) * ercosmx * cos(rsinmx) - sin(cx) * ercosmx * sin(rsinmx)) / exp(fabs(self.r))             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_ercosmx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_rsinmx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_ercosmx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_rsinmx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_exp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2197
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2197, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2197, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2197, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2197, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_2next(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rkfssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2197, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2197, __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("pysndlib.generators.Rkfssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2207
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2207, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2207, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2207, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2207, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2208
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkfssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2208, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2207
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2210
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2212
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2212, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2210
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2214
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2215, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;

  /* "pysndlib/generators.pyx":2216
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->r = __pyx_v_val;

  /* "pysndlib/generators.pyx":2214
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":420
 * 
 * cdef class Rkfssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 420, __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("pysndlib.generators.Rkfssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 420, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":421
 * cdef class Rkfssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 421, __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("pysndlib.generators.Rkfssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 421, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":422
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 422, __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("pysndlib.generators.Rkfssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 422, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":423
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 423, __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("pysndlib.generators.Rkfssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Rkfssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 423, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Rkfssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, None), state
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Rkfssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_134779209);
    __Pyx_GIVEREF(__pyx_int_134779209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_134779209)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Rkfssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Rkfssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Rkfssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Rkfssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkfssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2219
 * 
 * 
 * cpdef Rkfssb make_rkfssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_225make_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_f_8pysndlib_10generators_make_rkfssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkfssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkfssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2223
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 *     """
 *     return Rkfssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2223, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 2223, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 2223, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2219
 * 
 * 
 * cpdef Rkfssb make_rkfssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_225make_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_224make_rkfssb, "\n    creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_225make_rkfssb = {"make_rkfssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_225make_rkfssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_224make_rkfssb};
static PyObject *__pyx_pw_8pysndlib_10generators_225make_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rkfssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2219, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2219, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2219, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rkfssb") < 0)) __PYX_ERR(0, 2219, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rkfssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2219, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_224make_rkfssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_224make_rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rkfssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkfssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rkfssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2219, __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("pysndlib.generators.make_rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2225
 *     return Rkfssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_227rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkfssb(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2233
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rkfssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkfssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2233, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2225
 *     return Rkfssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_227rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_226rkfssb, "\n    returns many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.\n    \n    :param gen: rkfssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_227rkfssb = {"rkfssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_227rkfssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_226rkfssb};
static PyObject *__pyx_pw_8pysndlib_10generators_227rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rkfssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rkfssb") < 0)) __PYX_ERR(0, 2225, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rkfssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2225, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rkfssb, 1, "gen", 0))) __PYX_ERR(0, 2225, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_226rkfssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_226rkfssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rkfssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rkfssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rkfssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2225, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2225, __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("pysndlib.generators.rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2235
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_229is_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkfssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2242
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rkfssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rkfssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2235
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_229is_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_228is_rkfssb, "\n    returns True if gen is an rkfssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_229is_rkfssb = {"is_rkfssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_229is_rkfssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_228is_rkfssb};
static PyObject *__pyx_pw_8pysndlib_10generators_229is_rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rkfssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2235, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rkfssb") < 0)) __PYX_ERR(0, 2235, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rkfssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_228is_rkfssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_228is_rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rkfssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rkfssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2235, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2235, __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("pysndlib.generators.is_rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2252
 * cdef class R2kfcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, k=0.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_k = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_k,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_0_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2252, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2252, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2252, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2252, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_k = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2252, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos___init__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7R2kfcos___init__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_k) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2253
 * 
 *     def __init__(self, frequency, r=.5, k=0.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.k = k
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2253, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":2254
 *     def __init__(self, frequency, r=.5, k=0.0):
 *         self.frequency = frequency
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.k = k
 *         self.rr1 = 1.0 + (self.r*self.r)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2254, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":2255
 *         self.frequency = frequency
 *         self.r = r
 *         self.k = k             # <<<<<<<<<<<<<<
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.r2 = 2.0 * fabs(self.r)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2255, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_1;

  /* "pysndlib/generators.pyx":2256
 *         self.r = r
 *         self.k = k
 *         self.rr1 = 1.0 + (self.r*self.r)             # <<<<<<<<<<<<<<
 *         self.r2 = 2.0 * fabs(self.r)
 *         self.norm = (self.rr1 - self.r2)**(self.k)
 */
  __pyx_v_self->rr1 = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":2257
 *         self.k = k
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.r2 = 2.0 * fabs(self.r)             # <<<<<<<<<<<<<<
 *         self.norm = (self.rr1 - self.r2)**(self.k)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.rr1, 1, -self.r2], clm.Polynomial.SECOND_KIND)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2257, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_float_2_0, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2257, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r2 = __pyx_t_1;

  /* "pysndlib/generators.pyx":2258
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.r2 = 2.0 * fabs(self.r)
 *         self.norm = (self.rr1 - self.r2)**(self.k)             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_polywave(self.frequency, [0,self.rr1, 1, -self.r2], clm.Polynomial.SECOND_KIND)
 *         self.k = -self.k
 */
  __pyx_v_self->norm = pow((__pyx_v_self->rr1 - __pyx_v_self->r2), __pyx_v_self->k);

  /* "pysndlib/generators.pyx":2259
 *         self.r2 = 2.0 * fabs(self.r)
 *         self.norm = (self.rr1 - self.r2)**(self.k)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.rr1, 1, -self.r2], clm.Polynomial.SECOND_KIND)             # <<<<<<<<<<<<<<
 *         self.k = -self.k
 *        # print(f'self.frequency: {self.frequency} self.k: {self.k}, self.rr1: {self.rr1}, self.r2: {self.r2}, self.norm: {self.norm}, self.osc: {self.osc}')
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_polywave); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->rr1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_self->r2)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyList_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 0, __pyx_int_0)) __PYX_ERR(0, 2259, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_5)) __PYX_ERR(0, 2259, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 2, __pyx_int_1)) __PYX_ERR(0, 2259, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 3, __pyx_t_7)) __PYX_ERR(0, 2259, __pyx_L1_error);
  __pyx_t_5 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(__pyx_e_8pysndlib_3clm_SECOND_KIND); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_5, __pyx_t_2, __pyx_t_8, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 2259, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2260
 *         self.norm = (self.rr1 - self.r2)**(self.k)
 *         self.osc = clm.make_polywave(self.frequency, [0,self.rr1, 1, -self.r2], clm.Polynomial.SECOND_KIND)
 *         self.k = -self.k             # <<<<<<<<<<<<<<
 *        # print(f'self.frequency: {self.frequency} self.k: {self.k}, self.rr1: {self.rr1}, self.r2: {self.r2}, self.norm: {self.norm}, self.osc: {self.osc}')
 * 
 */
  __pyx_v_self->k = (-__pyx_v_self->k);

  /* "pysndlib/generators.pyx":2252
 * cdef class R2kfcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, k=0.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2264
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7R2kfcos_next(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7R2kfcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_polywave __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7R2kfcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2264, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2265
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_polywave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = __Pyx_SoftComplexToDouble(__Pyx_c_prod_double(__Pyx_c_pow_double(__pyx_t_double_complex_from_parts(__pyx_t_7, 0), __pyx_t_double_complex_from_parts(__pyx_v_self->k, 0)), __pyx_t_double_complex_from_parts(__pyx_v_self->norm, 0)), 1); if (unlikely(__pyx_t_9 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2265, __pyx_L1_error)
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2264
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 */

  /* 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("pysndlib.generators.R2kfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2kfcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2kfcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2264, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2264, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_2next(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_2next(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_R2kfcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2264, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2264, __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("pysndlib.generators.R2kfcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2267
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 *     def __call__(self, fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fm = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_0_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2267, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2267, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_fm = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2267, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2268
 * 
 *     def __call__(self, fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_fm); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2268, __pyx_L1_error)
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.fm = __pyx_t_1;
  __pyx_t_2 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2kfcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2268, __pyx_L1_error)
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2267
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 *     def __call__(self, fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2270
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2272
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2270
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2274
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2275, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2276
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 2276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":2274
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2278
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2280
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2278
 *         self.osc.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2282
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2283, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2284
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2284, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 2284, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":2282
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":437
 * 
 * cdef class R2kfcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double k
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 437, __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("pysndlib.generators.R2kfcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 437, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":438
 * cdef class R2kfcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double k
 *     cdef public cython.double rr1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 438, __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("pysndlib.generators.R2kfcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 438, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":439
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double k             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr1
 *     cdef public cython.double r2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_1k_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_1k_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_1k___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 439, __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("pysndlib.generators.R2kfcos.k.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_1k_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 439, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.k.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":440
 *     cdef public cython.double r
 *     cdef public cython.double k
 *     cdef public cython.double rr1             # <<<<<<<<<<<<<<
 *     cdef public cython.double r2
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 440, __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("pysndlib.generators.R2kfcos.rr1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3rr1_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 440, __pyx_L1_error)
  __pyx_v_self->rr1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.rr1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":441
 *     cdef public cython.double k
 *     cdef public cython.double rr1
 *     cdef public cython.double r2             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_2r2___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_2r2___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 441, __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("pysndlib.generators.R2kfcos.r2.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_2r2_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_2r2_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 441, __pyx_L1_error)
  __pyx_v_self->r2 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.r2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":442
 *     cdef public cython.double rr1
 *     cdef public cython.double r2
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_3osc___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 442, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "pysndlib/generators.pxd":443
 *     cdef public cython.double r2
 *     cdef public clm.mus_any osc
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 443, __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("pysndlib.generators.R2kfcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2kfcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 443, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2kfcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2kfcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.k, self.norm, self.osc, self.r, self.r2, self.rr1)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rr1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.k, self.norm, self.osc, self.r, self.r2, self.rr1)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.k, self.norm, self.osc, self.r, self.r2, self.rr1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.k, self.norm, self.osc, self.r, self.r2, self.rr1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, None), state
 */
  /*else*/ {
    __pyx_t_8 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_8;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_R2kfcos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_148272179);
    __Pyx_GIVEREF(__pyx_int_148272179);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_148272179)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, None), state
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_R2kfcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_148272179);
    __Pyx_GIVEREF(__pyx_int_148272179);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_148272179)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2kfcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2kfcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2kfcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2kfcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2kfcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2kfcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2kfcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2287
 * 
 * 
 * cpdef R2kfcos make_r2kfcos(frequency=0, r=.5, k=.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2kfcos (r2k!cos) generator that produces many cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_231make_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_f_8pysndlib_10generators_make_r2kfcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2kfcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_k = ((PyObject *)__pyx_float__0);
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2kfcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_k = __pyx_optional_args->k;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2292
 *     spaced by frequency with amplitude too messy to write down.
 *     """
 *     return R2kfcos(frequency, r, k)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2292, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2292, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_k);
  __Pyx_GIVEREF(__pyx_v_k);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_k)) __PYX_ERR(0, 2292, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2kfcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2287
 * 
 * 
 * cpdef R2kfcos make_r2kfcos(frequency=0, r=.5, k=.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2kfcos (r2k!cos) generator that produces many cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_231make_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_230make_r2kfcos, "\n    creates an r2kfcos (r2k!cos) generator that produces many cosines \n    spaced by frequency with amplitude too messy to write down.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_231make_r2kfcos = {"make_r2kfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_231make_r2kfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_230make_r2kfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_231make_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_k = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_r2kfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_k,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2287, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_r2kfcos") < 0)) __PYX_ERR(0, 2287, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_k = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_r2kfcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2287, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_230make_r2kfcos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_230make_r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_r2kfcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2kfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.k = __pyx_v_k;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_r2kfcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2287, __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("pysndlib.generators.make_r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2294
 *     return R2kfcos(frequency, r, k)
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude too messy to write down.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_233r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2kfcos(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2kfcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2302
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_r2kfcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2kfcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2302, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2294
 *     return R2kfcos(frequency, r, k)
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude too messy to write down.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_233r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_232r2kfcos, "\n    returns many cosines spaced by frequency with amplitude too messy to write down.\n        \n    :param gen: r2kfcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_233r2kfcos = {"r2kfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_233r2kfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_232r2kfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_233r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("r2kfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2294, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2294, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "r2kfcos") < 0)) __PYX_ERR(0, 2294, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2294, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("r2kfcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2294, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_R2kfcos, 1, "gen", 0))) __PYX_ERR(0, 2294, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_232r2kfcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_232r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_r2kfcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("r2kfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_r2kfcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2294, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2294, __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("pysndlib.generators.r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2304
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2kfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2kfcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_235is_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2kfcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2311
 *     :rtype: bool
 *     """
 *     return isinstance(gen, R2kfcos)             # <<<<<<<<<<<<<<
 * 
 * #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_R2kfcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2304
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2kfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2kfcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_235is_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_234is_r2kfcos, "\n    returns True if gen is an r2kfcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_235is_r2kfcos = {"is_r2kfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_235is_r2kfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_234is_r2kfcos};
static PyObject *__pyx_pw_8pysndlib_10generators_235is_r2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_r2kfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2304, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_r2kfcos") < 0)) __PYX_ERR(0, 2304, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_r2kfcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2304, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_234is_r2kfcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_234is_r2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_r2kfcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_r2kfcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2304, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2304, __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("pysndlib.generators.is_r2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2322
 * cdef class K2sin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2322, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2322, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin___init__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5K2sin___init__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_frequency) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2323
 * 
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2323, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2323, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2324
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2322
 * cdef class K2sin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2326
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5K2sin_next(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2sin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5K2sin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2326, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2326, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2327
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (3.0 * sin(x) / (5.0 - (4.0 * cos(x))))
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2328
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (3.0 * sin(x) / (5.0 - (4.0 * cos(x))))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2329
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         return (3.0 * sin(x) / (5.0 - (4.0 * cos(x))))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_float_4_0, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_5_0, __pyx_t_4, 5.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2329, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2326
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* 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("pysndlib.generators.K2sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2sin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2sin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2326, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2326, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2326, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_2next(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_2next(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_K2sin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2326, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2326, __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("pysndlib.generators.K2sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2331
 *         return (3.0 * sin(x) / (5.0 - (4.0 * cos(x))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2331, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2331, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2331, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2331, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_4__call__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_4__call__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2332
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef K2sin make_k2sin(frequency=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2sin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2332, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2331
 *         return (3.0 * sin(x) / (5.0 - (4.0 * cos(x))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":451
 * 
 * cdef class K2sin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 451, __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("pysndlib.generators.K2sin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 451, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2sin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":452
 * cdef class K2sin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 452, __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("pysndlib.generators.K2sin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 452, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2sin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2sin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2sin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_K2sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_35949077);
    __Pyx_GIVEREF(__pyx_int_35949077);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_35949077)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, None), state
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_K2sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_35949077);
    __Pyx_GIVEREF(__pyx_int_35949077);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_35949077)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2sin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2sin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2sin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2sin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2sin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2sin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.K2sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2334
 *         return self.next(fm)
 * 
 * cpdef K2sin make_k2sin(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a k2sin generator that produces many sines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_237make_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_f_8pysndlib_10generators_make_k2sin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2sin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2sin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
    }
  }

  /* "pysndlib/generators.pyx":2339
 *     spaced by frequency with amplitude 1/(2^k).
 *     """
 *     return K2sin(frequency)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2sin), __pyx_v_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2334
 *         return self.next(fm)
 * 
 * cpdef K2sin make_k2sin(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a k2sin generator that produces many sines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_237make_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_236make_k2sin, "\n    creates a k2sin generator that produces many sines \n    spaced by frequency with amplitude 1/(2^k).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_237make_k2sin = {"make_k2sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_237make_k2sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_236make_k2sin};
static PyObject *__pyx_pw_8pysndlib_10generators_237make_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_k2sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2334, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_k2sin") < 0)) __PYX_ERR(0, 2334, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_k2sin", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2334, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_236make_k2sin(__pyx_self, __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_236make_k2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_k2sin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_k2sin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2334, __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("pysndlib.generators.make_k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2341
 *     return K2sin(frequency)
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude 1/(2^k).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_239k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2sin(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2sin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2349
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_k2sin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2sin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2349, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2341
 *     return K2sin(frequency)
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude 1/(2^k).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_239k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_238k2sin, "\n    returns many sines spaced by frequency with amplitude 1/(2^k).\n        \n    :param gen: k2sin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_239k2sin = {"k2sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_239k2sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_238k2sin};
static PyObject *__pyx_pw_8pysndlib_10generators_239k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k2sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2341, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2341, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "k2sin") < 0)) __PYX_ERR(0, 2341, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_K2sin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2341, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("k2sin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2341, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_K2sin, 1, "gen", 0))) __PYX_ERR(0, 2341, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_238k2sin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_238k2sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_k2sin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k2sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_k2sin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2341, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2341, __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("pysndlib.generators.k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2351
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2sin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_241is_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2sin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2358
 *     :rtype: bool
 *     """
 *     return isinstance(gen, K2sin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_K2sin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2351
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2sin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_241is_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_240is_k2sin, "\n    returns True if gen is an k2sin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_241is_k2sin = {"is_k2sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_241is_k2sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_240is_k2sin};
static PyObject *__pyx_pw_8pysndlib_10generators_241is_k2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_k2sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2351, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_k2sin") < 0)) __PYX_ERR(0, 2351, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_k2sin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2351, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_240is_k2sin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_240is_k2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_k2sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_k2sin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2351, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2351, __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("pysndlib.generators.is_k2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2367
 * cdef class K2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2367, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2367, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2367, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos___init__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5K2cos___init__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_frequency) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2368
 * 
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2368, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2368, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2369
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2367
 * cdef class K2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.angle = 0.0
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2371
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5K2cos_next(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2371, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5K2cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2371, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2371, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2371, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2372
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return  ((3.0 / (5.0 - (4.0 * cos(x)))) - 1.0) * .5
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2373
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return  ((3.0 / (5.0 - (4.0 * cos(x)))) - 1.0) * .5
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2374
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         return  ((3.0 / (5.0 - (4.0 * cos(x)))) - 1.0) * .5             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_4_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_5_0, __pyx_t_2, 5.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_3_0, __pyx_t_1, 3.0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_2, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_float__5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2374, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2371
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* 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("pysndlib.generators.K2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2371, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2371, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2371, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2371, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_2next(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_2next(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_K2cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2371, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2371, __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("pysndlib.generators.K2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2376
 *         return  ((3.0 / (5.0 - (4.0 * cos(x)))) - 1.0) * .5
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2376, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2376, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2376, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2376, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2377
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef K2cos make_k2cos(frequency=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2377, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2376
 *         return  ((3.0 / (5.0 - (4.0 * cos(x)))) - 1.0) * .5
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":460
 * 
 * cdef class K2cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 460, __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("pysndlib.generators.K2cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 460, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":461
 * cdef class K2cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 461, __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("pysndlib.generators.K2cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 461, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_K2cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_35949077);
    __Pyx_GIVEREF(__pyx_int_35949077);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_35949077)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, None), state
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_K2cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_35949077);
    __Pyx_GIVEREF(__pyx_int_35949077);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_35949077)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.K2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2379
 *         return self.next(fm)
 * 
 * cpdef K2cos make_k2cos(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2cos generator that produces many cosines
 */

static PyObject *__pyx_pw_8pysndlib_10generators_243make_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_f_8pysndlib_10generators_make_k2cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
    }
  }

  /* "pysndlib/generators.pyx":2384
 *      spaced by frequency with amplitude 1/(2^k).
 *     """
 *     return K2cos(frequency)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2cos), __pyx_v_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2379
 *         return self.next(fm)
 * 
 * cpdef K2cos make_k2cos(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2cos generator that produces many cosines
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_243make_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_242make_k2cos, "\n     creates a k2cos generator that produces many cosines \n     spaced by frequency with amplitude 1/(2^k).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_243make_k2cos = {"make_k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_243make_k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_242make_k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_243make_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2379, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_k2cos") < 0)) __PYX_ERR(0, 2379, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_k2cos", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2379, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_242make_k2cos(__pyx_self, __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_242make_k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_k2cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_k2cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2379, __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("pysndlib.generators.make_k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2386
 *     return K2cos(frequency)
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(2^k).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_245k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2cos(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2394
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_k2cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2394, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2386
 *     return K2cos(frequency)
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(2^k).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_245k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_244k2cos, "\n    returns many cosines spaced by frequency with amplitude 1/(2^k).\n\n    :param gen: noddssb k2cos\n    :param fm: fm input\n    :rtype: float    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_245k2cos = {"k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_245k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_244k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_245k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2386, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2386, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "k2cos") < 0)) __PYX_ERR(0, 2386, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_K2cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2386, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("k2cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2386, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_K2cos, 1, "gen", 0))) __PYX_ERR(0, 2386, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_244k2cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_244k2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_k2cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_k2cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2386, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2386, __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("pysndlib.generators.k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2396
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_247is_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2403
 *     :rtype: bool
 *     """
 *     return isinstance(gen, K2cos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- k2ssb ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_K2cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2396
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_247is_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_246is_k2cos, "\n    returns True if gen is an k2cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_247is_k2cos = {"is_k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_247is_k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_246is_k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_247is_k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2396, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_k2cos") < 0)) __PYX_ERR(0, 2396, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_k2cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2396, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_246is_k2cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_246is_k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_k2cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2396, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2396, __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("pysndlib.generators.is_k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2408
 * cdef class K2ssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2ssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2ssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2408, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2408, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2408, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2408, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb___init__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5K2ssb___init__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2409
 * 
 *     def __init__(self, frequency, ratio=1.):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2409, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2409, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2410
 *     def __init__(self, frequency, ratio=1.):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2410, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":2411
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2408
 * cdef class K2ssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2413
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5K2ssb_next(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K2ssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5K2ssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2413, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2413, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2413, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2414
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         cdef cython.double cx  = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx  = cx * self.ratio
 * 
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2415
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio             # <<<<<<<<<<<<<<
 * 
 *         self.angle += fm + self.frequency
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":2417
 *         cdef cython.double mx  = cx * self.ratio
 * 
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return ((3. * cos(cx))-(sin(cx) * 4.0 * sin(mx))) / (3.0 * (5.0 - (4.0 * cos(mx))))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2418
 * 
 *         self.angle += fm + self.frequency
 *         return ((3. * cos(cx))-(sin(cx) * 4.0 * sin(mx))) / (3.0 * (5.0 - (4.0 * cos(mx))))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_3_, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_float_4_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_4_0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_5_0, __pyx_t_2, 5.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2418, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2413
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2ssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2ssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2413, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2413, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2413, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2413, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_2next(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_2next(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_K2ssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2413, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2413, __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("pysndlib.generators.K2ssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2420
 *         return ((3. * cos(cx))-(sin(cx) * 4.0 * sin(mx))) / (3.0 * (5.0 - (4.0 * cos(mx))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2420, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2420, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2420, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2420, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_4__call__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2421
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2ssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2421, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2420
 *         return ((3. * cos(cx))-(sin(cx) * 4.0 * sin(mx))) / (3.0 * (5.0 - (4.0 * cos(mx))))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":469
 * 
 * cdef class K2ssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 469, __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("pysndlib.generators.K2ssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2ssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 469, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":470
 * cdef class K2ssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 470, __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("pysndlib.generators.K2ssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2ssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 470, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":471
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2ssb(K2ssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 471, __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("pysndlib.generators.K2ssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K2ssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K2ssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K2ssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 471, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2ssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2ssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_K2ssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_180736322);
    __Pyx_GIVEREF(__pyx_int_180736322);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_180736322)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, None), state
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_K2ssb); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_180736322);
    __Pyx_GIVEREF(__pyx_int_180736322);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_180736322)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K2ssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2ssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K2ssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K2ssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K2ssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2ssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.K2ssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2424
 * 
 * 
 * cpdef K2ssb make_k2ssb(frequency=0, ratio=1.):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2ssb generator that produces many sinusoids from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_249make_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_f_8pysndlib_10generators_make_k2ssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k2ssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2ssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
      }
    }
  }

  /* "pysndlib/generators.pyx":2429
 *      frequency spaced by frequency * ratio with amplitude 1/(2^k).
 *     """
 *     return K2ssb(frequency, ratio)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k2ssb(gen: K2ssb, fm: cython.double = 0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2429, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 2429, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2ssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2424
 * 
 * 
 * cpdef K2ssb make_k2ssb(frequency=0, ratio=1.):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2ssb generator that produces many sinusoids from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_249make_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_248make_k2ssb, "\n     creates a k2ssb generator that produces many sinusoids from \n     frequency spaced by frequency * ratio with amplitude 1/(2^k).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_249make_k2ssb = {"make_k2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_249make_k2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_248make_k2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_249make_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_k2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2424, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2424, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_k2ssb") < 0)) __PYX_ERR(0, 2424, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_k2ssb", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2424, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_248make_k2ssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_248make_k2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_k2ssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_k2ssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2424, __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("pysndlib.generators.make_k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2431
 *     return K2ssb(frequency, ratio)
 * 
 * cpdef cython.double k2ssb(gen: K2ssb, fm: cython.double = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude 1/(2^k).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_251k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_k2ssb(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2ssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2439
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_k2ssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K2ssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2439, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2431
 *     return K2ssb(frequency, ratio)
 * 
 * cpdef cython.double k2ssb(gen: K2ssb, fm: cython.double = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude 1/(2^k).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_251k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_250k2ssb, "\n    returns many sinusoids from frequency spaced by frequency * ratio with amplitude 1/(2^k).\n        \n    :param gen: k2ssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_251k2ssb = {"k2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_251k2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_250k2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_251k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2431, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2431, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "k2ssb") < 0)) __PYX_ERR(0, 2431, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_K2ssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2431, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("k2ssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2431, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_K2ssb, 0, "gen", 0))) __PYX_ERR(0, 2431, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_250k2ssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_250k2ssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_k2ssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_k2ssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2431, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2431, __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("pysndlib.generators.k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2441
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2ssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_253is_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k2ssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2448
 *     :rtype: bool
 *     """
 *     return isinstance(gen, K2ssb)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_K2ssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2441
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2ssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_253is_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_252is_k2ssb, "\n    returns True if gen is an k2ssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_253is_k2ssb = {"is_k2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_253is_k2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_252is_k2ssb};
static PyObject *__pyx_pw_8pysndlib_10generators_253is_k2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_k2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2441, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_k2ssb") < 0)) __PYX_ERR(0, 2441, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_k2ssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2441, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_252is_k2ssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_252is_k2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_k2ssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_k2ssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2441, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2441, __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("pysndlib.generators.is_k2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2455
 * cdef class Dblsum(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Dblsum_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Dblsum_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2455, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2455, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2455, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2455, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum___init__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Dblsum___init__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2456
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2456, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2456, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2457
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2457, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2458
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2455
 * cdef class Dblsum(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2460
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Dblsum_next(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Dblsum_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2460, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Dblsum_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2460, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2460, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2460, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2461
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = ((1 + self.r) * sin(.5 * x))
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2462
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double a = ((1 + self.r) * sin(.5 * x))
 *         cdef cython.double b = (1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r))
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2463
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = ((1 + self.r) * sin(.5 * x))             # <<<<<<<<<<<<<<
 *         cdef cython.double b = (1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r))
 *         return a / b
 */
  __pyx_t_1 = PyFloat_FromDouble((1.0 + __pyx_v_self->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((.5 * __pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2463, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2463, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_a = __pyx_t_7;

  /* "pysndlib/generators.pyx":2464
 *         self.angle += fm + self.frequency
 *         cdef cython.double a = ((1 + self.r) * sin(.5 * x))
 *         cdef cython.double b = (1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r))             # <<<<<<<<<<<<<<
 *         return a / b
 * 
 */
  __pyx_t_4 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_1, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_self->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2464, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_b = __pyx_t_7;

  /* "pysndlib/generators.pyx":2465
 *         cdef cython.double a = ((1 + self.r) * sin(.5 * x))
 *         cdef cython.double b = (1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r))
 *         return a / b             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  if (unlikely(__pyx_v_b == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2465, __pyx_L1_error)
  }
  __pyx_r = (__pyx_v_a / __pyx_v_b);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2460
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* 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("pysndlib.generators.Dblsum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Dblsum_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Dblsum_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2460, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2460, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2460, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2460, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_2next(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_2next(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Dblsum->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2460, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2460, __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("pysndlib.generators.Dblsum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2467
 *         return a / b
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2467, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2467, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2467, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2467, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_4__call__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_4__call__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2468
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Dblsum *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2468, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2468, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2467
 *         return a / b
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2470
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency * .5)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2472
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency * .5)             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_radians2hz((__pyx_v_self->frequency * .5), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2472, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2472, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2470
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return clm.radians2hz(self.frequency * .5)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2474
 *         return clm.radians2hz(self.frequency * .5)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(2*val)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2475, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_6Dblsum_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2476
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(2*val)             # <<<<<<<<<<<<<<
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians((2.0 * __pyx_v_val), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2476, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":2474
 *         return clm.radians2hz(self.frequency * .5)
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.frequency = clm.hz2radians(2*val)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":479
 * 
 * cdef class Dblsum(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 479, __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("pysndlib.generators.Dblsum.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Dblsum_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 479, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":480
 * cdef class Dblsum(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_1r___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 480, __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("pysndlib.generators.Dblsum.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Dblsum_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Dblsum_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Dblsum_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 480, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":481
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 481, __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("pysndlib.generators.Dblsum.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Dblsum_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Dblsum_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Dblsum_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 481, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Dblsum_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Dblsum_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Dblsum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, None), state
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Dblsum); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Dblsum_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Dblsum_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Dblsum_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Dblsum_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Dblsum_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Dblsum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Dblsum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2478
 *         self.frequency = clm.hz2radians(2*val)
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *      creates a dblsum generator that produces many sines from frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_255make_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_f_8pysndlib_10generators_make_dblsum(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_dblsum *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_dblsum", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2483
 *      spaced by frequency * (2k -1) with amplitude r^k (this is buggy)
 *     """
 *     return Dblsum(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2483, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2483, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Dblsum), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2478
 *         self.frequency = clm.hz2radians(2*val)
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *      creates a dblsum generator that produces many sines from frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_255make_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_254make_dblsum, "\n     creates a dblsum generator that produces many sines from frequency \n     spaced by frequency * (2k -1) with amplitude r^k (this is buggy)\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_255make_dblsum = {"make_dblsum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_255make_dblsum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_254make_dblsum};
static PyObject *__pyx_pw_8pysndlib_10generators_255make_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_dblsum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2478, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2478, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_dblsum") < 0)) __PYX_ERR(0, 2478, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_dblsum", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2478, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_254make_dblsum(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_254make_dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_dblsum __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_dblsum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_dblsum(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2478, __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("pysndlib.generators.make_dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2485
 *     return Dblsum(frequency, r)
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * (2k -1) with amplitude r^k (this is buggy)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_257dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_dblsum(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_dblsum *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2493
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_dblsum(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Dblsum *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2493, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2485
 *     return Dblsum(frequency, r)
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * (2k -1) with amplitude r^k (this is buggy)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_257dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_256dblsum, "\n    returns many sines from frequency spaced by frequency * (2k -1) with amplitude r^k (this is buggy)\n       \n    :param gen: dblsum gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_257dblsum = {"dblsum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_257dblsum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_256dblsum};
static PyObject *__pyx_pw_8pysndlib_10generators_257dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("dblsum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "dblsum") < 0)) __PYX_ERR(0, 2485, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Dblsum *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("dblsum", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2485, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Dblsum, 1, "gen", 0))) __PYX_ERR(0, 2485, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_256dblsum(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_256dblsum(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_dblsum __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("dblsum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_dblsum(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2485, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2485, __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("pysndlib.generators.dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2495
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_dblsum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an dblsum
 */

static PyObject *__pyx_pw_8pysndlib_10generators_259is_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_dblsum(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2502
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Dblsum)             # <<<<<<<<<<<<<<
 * 
 * # --------------- rkoddssb ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Dblsum); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2495
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_dblsum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an dblsum
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_259is_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_258is_dblsum, "\n    returns True if gen is an dblsum\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_259is_dblsum = {"is_dblsum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_259is_dblsum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_258is_dblsum};
static PyObject *__pyx_pw_8pysndlib_10generators_259is_dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_dblsum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2495, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_dblsum") < 0)) __PYX_ERR(0, 2495, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_dblsum", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2495, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_258is_dblsum(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_258is_dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_dblsum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_dblsum(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2495, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2495, __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("pysndlib.generators.is_dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2508
 * cdef class Rkoddssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2508, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2508, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2508, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2508, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2508, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb___init__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb___init__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2509
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.999999, .999999)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2509, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2509, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2510
 *     def __init__(self, frequency, ratio=1., r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr1 = 1.0 + (self.r*self.r)
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2510, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":2511
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.999999, .999999)             # <<<<<<<<<<<<<<
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_clamp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_v_r, __pyx_float_neg__999999, __pyx_float__999999};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 3+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2511, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2511, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2512
 *         self.ratio = ratio
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr1 = 1.0 + (self.r*self.r)             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 *         self.angle = 0.0
 */
  __pyx_v_self->rr1 = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":2513
 *         self.r = clm.clamp(r, -.999999, .999999)
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble((1.0 + __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2513, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = PyFloat_FromDouble((1.0 - __pyx_v_self->r)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_7};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2513, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2513, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":2514
 *         self.rr1 = 1.0 + (self.r*self.r)
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2508
 * cdef class Rkoddssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2517
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_8Rkoddssb_next(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Rkoddssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_v_cxx;
  double __pyx_v_cmx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_8Rkoddssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2517, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2517, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2517, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2518
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cx: cython.double = self.angle             # <<<<<<<<<<<<<<
 *         mx: cython.double = cx * self.ratio
 *         cxx: cython.double = cx - mx
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2519
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio             # <<<<<<<<<<<<<<
 *         cxx: cython.double = cx - mx
 *         cmx: cython.double = 2.0 * self.r * cos(mx)
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":2520
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 *         cxx: cython.double = cx - mx             # <<<<<<<<<<<<<<
 *         cmx: cython.double = 2.0 * self.r * cos(mx)
 *         self.angle += fm + self.frequency
 */
  __pyx_v_cxx = (__pyx_v_cx - __pyx_v_mx);

  /* "pysndlib/generators.pyx":2521
 *         mx: cython.double = cx * self.ratio
 *         cxx: cython.double = cx - mx
 *         cmx: cython.double = 2.0 * self.r * cos(mx)             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (((cos(cxx) * .5 * log((self.rr1+cmx) / (self.rr1-cmx))) - (sin(cxx) * (atan2((2.0 * self.r * sin(mx)), (1.0 - (self.r*self.r)))))) * self.norm)
 */
  __pyx_t_1 = PyFloat_FromDouble((2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2521, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cmx = __pyx_t_7;

  /* "pysndlib/generators.pyx":2522
 *         cxx: cython.double = cx - mx
 *         cmx: cython.double = 2.0 * self.r * cos(mx)
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (((cos(cxx) * .5 * log((self.rr1+cmx) / (self.rr1-cmx))) - (sin(cxx) * (atan2((2.0 * self.r * sin(mx)), (1.0 - (self.r*self.r)))))) * self.norm)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2523
 *         cmx: cython.double = 2.0 * self.r * cos(mx)
 *         self.angle += fm + self.frequency
 *         return (((cos(cxx) * .5 * log((self.rr1+cmx) / (self.rr1-cmx))) - (sin(cxx) * (atan2((2.0 * self.r * sin(mx)), (1.0 - (self.r*self.r)))))) * self.norm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_float__5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = (__pyx_v_self->rr1 + __pyx_v_cmx);
  __pyx_t_8 = (__pyx_v_self->rr1 - __pyx_v_cmx);
  if (unlikely(__pyx_t_8 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2523, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble((__pyx_t_7 / __pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cxx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_atan2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_sin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
    __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = PyNumber_Multiply(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyFloat_FromDouble((1.0 - (__pyx_v_self->r * __pyx_v_self->r))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_10, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2517
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Rkoddssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Rkoddssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2517, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2517, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2517, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2517, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_2next(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_2next(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Rkoddssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2517, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2517, __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("pysndlib.generators.Rkoddssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2526
 * 
 * 
 *     def __call__(self, fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_fm = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_0_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2526, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2526, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_fm = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2526, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2527
 * 
 *     def __call__(self, fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_fm); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2527, __pyx_L1_error)
  __pyx_t_3.__pyx_n = 1;
  __pyx_t_3.fm = __pyx_t_1;
  __pyx_t_2 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkoddssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2527, __pyx_L1_error)
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2527, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2526
 * 
 * 
 *     def __call__(self, fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2529
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2531
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2529
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2533
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .9999999)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2534, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2535
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .9999999)             # <<<<<<<<<<<<<<
 *         self.rr1 = 1.0 + (self.r * self.r)
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_clamp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_4, __pyx_t_2, __pyx_float_neg__999999, __pyx_float__9999999};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 3+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2535, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->r = __pyx_t_6;

  /* "pysndlib/generators.pyx":2536
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .9999999)
 *         self.rr1 = 1.0 + (self.r * self.r)             # <<<<<<<<<<<<<<
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 */
  __pyx_v_self->rr1 = (1.0 + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":2537
 *         self.r = clm.clamp(val, -.999999, .9999999)
 *         self.rr1 = 1.0 + (self.r * self.r)
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))             # <<<<<<<<<<<<<<
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyFloat_FromDouble((1.0 + __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble((1.0 - __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2537, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->norm = __pyx_t_6;

  /* "pysndlib/generators.pyx":2533
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = clm.clamp(val, -.999999, .9999999)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":489
 * # --------------- rkoddssb ---------------- #
 * cdef class Rkoddssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 489, __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("pysndlib.generators.Rkoddssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 489, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":490
 * cdef class Rkoddssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double rr1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 490, __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("pysndlib.generators.Rkoddssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 490, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":491
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double rr1
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_1r___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 491, __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("pysndlib.generators.Rkoddssb.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 491, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":492
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double rr1             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->rr1); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 492, __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("pysndlib.generators.Rkoddssb.rr1.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_3rr1_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 492, __pyx_L1_error)
  __pyx_v_self->rr1 = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.rr1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":493
 *     cdef public cython.double r
 *     cdef public cython.double rr1
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 493, __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("pysndlib.generators.Rkoddssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 493, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":494
 *     cdef public cython.double rr1
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 494, __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("pysndlib.generators.Rkoddssb.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Rkoddssb_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 494, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r, self.ratio, self.rr1)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->rr1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.norm, self.r, self.ratio, self.rr1)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r, self.ratio, self.rr1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.norm, self.r, self.ratio, self.rr1)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Rkoddssb); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_105786433);
    __Pyx_GIVEREF(__pyx_int_105786433);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_105786433)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, None), state
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Rkoddssb); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_105786433);
    __Pyx_GIVEREF(__pyx_int_105786433);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_105786433)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Rkoddssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Rkoddssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkoddssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Rkoddssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2539
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkoddssb generator that produces many sinusoids from
 */

static PyObject *__pyx_pw_8pysndlib_10generators_261make_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_f_8pysndlib_10generators_make_rkoddssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_rkoddssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkoddssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2544
 *     frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).
 *     """
 *     return Rkoddssb(frequency, ratio, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2544, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 2544, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 2544, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkoddssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2539
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkoddssb generator that produces many sinusoids from
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_261make_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_260make_rkoddssb, "\n    creates an rkoddssb generator that produces many sinusoids from \n    frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_261make_rkoddssb = {"make_rkoddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_261make_rkoddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_260make_rkoddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_261make_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_rkoddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2539, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2539, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2539, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_rkoddssb") < 0)) __PYX_ERR(0, 2539, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_rkoddssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2539, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_260make_rkoddssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_260make_rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_rkoddssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_rkoddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_rkoddssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2539, __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("pysndlib.generators.make_rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2546
 *     return Rkoddssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_263rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_rkoddssb(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkoddssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2554
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_rkoddssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Rkoddssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2554, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2546
 *     return Rkoddssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_263rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_262rkoddssb, "\n    returns many sinusoids from frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).\n\n    :param gen: rkoddssb gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_263rkoddssb = {"rkoddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_263rkoddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_262rkoddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_263rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("rkoddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2546, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2546, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "rkoddssb") < 0)) __PYX_ERR(0, 2546, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2546, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("rkoddssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2546, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Rkoddssb, 1, "gen", 0))) __PYX_ERR(0, 2546, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_262rkoddssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_262rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_rkoddssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("rkoddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_rkoddssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2546, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2546, __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("pysndlib.generators.rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2556
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkoddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkoddssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_265is_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_rkoddssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2563
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Rkoddssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- krksin ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Rkoddssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2556
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkoddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkoddssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_265is_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_264is_rkoddssb, "\n    returns True if gen is an rkoddssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_265is_rkoddssb = {"is_rkoddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_265is_rkoddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_264is_rkoddssb};
static PyObject *__pyx_pw_8pysndlib_10generators_265is_rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_rkoddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2556, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_rkoddssb") < 0)) __PYX_ERR(0, 2556, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_rkoddssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2556, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_264is_rkoddssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_264is_rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_rkoddssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_rkoddssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2556, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2556, __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("pysndlib.generators.is_rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2568
 * cdef class Krksin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Krksin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Krksin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2568, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2568, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2568, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2568, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin___init__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_6Krksin___init__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2569
 * 
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2569, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2569, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2570
 *     def __init__(self, frequency, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2570, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2571
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2568
 * cdef class Krksin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2573
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 */

static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_6Krksin_next(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_6Krksin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_r1;
  double __pyx_v_r3;
  double __pyx_v_den;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2573, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_6Krksin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2573, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2573, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2573, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2574
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1.0 - self.r
 *         cdef cython.double r3 = r1 if self.r > .9 else 1.0
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2575
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double r3 = r1 if self.r > .9 else 1.0
 *         cdef cython.double den = 1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r)
 */
  __pyx_v_r1 = (1.0 - __pyx_v_self->r);

  /* "pysndlib/generators.pyx":2576
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 *         cdef cython.double r3 = r1 if self.r > .9 else 1.0             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r)
 *         self.angle += self.frequency + fm
 */
  __pyx_t_8 = (__pyx_v_self->r > .9);
  if (__pyx_t_8) {
    __pyx_t_7 = __pyx_v_r1;
  } else {
    __pyx_t_7 = 1.0;
  }
  __pyx_v_r3 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2577
 *         cdef cython.double r1 = 1.0 - self.r
 *         cdef cython.double r3 = r1 if self.r > .9 else 1.0
 *         cdef cython.double den = 1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r)             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return (r1 * r1 * r3 * sin(x)) / (den * den)
 */
  __pyx_t_1 = PyFloat_FromDouble((-2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2577, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_self->r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":2578
 *         cdef cython.double r3 = r1 if self.r > .9 else 1.0
 *         cdef cython.double den = 1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r)
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return (r1 * r1 * r3 * sin(x)) / (den * den)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":2579
 *         cdef cython.double den = 1.0 + (-2.0 * self.r * cos(x)) + (self.r*self.r)
 *         self.angle += self.frequency + fm
 *         return (r1 * r1 * r3 * sin(x)) / (den * den)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_1 = PyFloat_FromDouble(((__pyx_v_r1 * __pyx_v_r1) * __pyx_v_r3)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2579, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_den * __pyx_v_den)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2573
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 */

  /* 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("pysndlib.generators.Krksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Krksin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Krksin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2573, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2573, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2573, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2573, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Krksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_2next(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_2next(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Krksin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2573, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2573, __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("pysndlib.generators.Krksin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2581
 *         return (r1 * r1 * r3 * sin(x)) / (den * den)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2581, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2581, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2581, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2581, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_4__call__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2582
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Krksin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2582, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2581
 *         return (r1 * r1 * r3 * sin(x)) / (den * den)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":502
 * 
 * cdef class Krksin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 502, __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("pysndlib.generators.Krksin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Krksin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Krksin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Krksin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 502, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Krksin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":503
 * cdef class Krksin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 503, __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("pysndlib.generators.Krksin.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Krksin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Krksin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Krksin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 503, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Krksin.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":504
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 504, __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("pysndlib.generators.Krksin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_6Krksin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_6Krksin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_6Krksin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 504, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Krksin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Krksin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Krksin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Krksin); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, None), state
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Krksin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_6Krksin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Krksin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_6Krksin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_6Krksin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_6Krksin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Krksin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Krksin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2584
 *         return self.next(fm)
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_267make_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_f_8pysndlib_10generators_make_krksin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_krksin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_krksin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2588
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 *     """
 *     return Krksin(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2588, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2588, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Krksin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2584
 *         return self.next(fm)
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_267make_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_266make_krksin, "\n    creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_267make_krksin = {"make_krksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_267make_krksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_266make_krksin};
static PyObject *__pyx_pw_8pysndlib_10generators_267make_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_krksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2584, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2584, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_krksin") < 0)) __PYX_ERR(0, 2584, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_krksin", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2584, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_266make_krksin(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_266make_krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_krksin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_krksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_krksin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2584, __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("pysndlib.generators.make_krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2590
 *     return Krksin(frequency, r)
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude kr^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_269krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_krksin(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_krksin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2599
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_krksin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Krksin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2599, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2590
 *     return Krksin(frequency, r)
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude kr^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_269krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_268krksin, "\n    returns many sines spaced by frequency with amplitude kr^k.\n        \n    :param gen: krksin gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_269krksin = {"krksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_269krksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_268krksin};
static PyObject *__pyx_pw_8pysndlib_10generators_269krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("krksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2590, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2590, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "krksin") < 0)) __PYX_ERR(0, 2590, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Krksin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2590, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("krksin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2590, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Krksin, 1, "gen", 0))) __PYX_ERR(0, 2590, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_268krksin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_268krksin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_krksin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("krksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_krksin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2590, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2590, __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("pysndlib.generators.krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2601
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_krksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an krksin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_271is_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_krksin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2608
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Krksin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Krksin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2601
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_krksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an krksin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_271is_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_270is_krksin, "\n    returns True if gen is an krksin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_271is_krksin = {"is_krksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_271is_krksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_270is_krksin};
static PyObject *__pyx_pw_8pysndlib_10generators_271is_krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_krksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2601, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_krksin") < 0)) __PYX_ERR(0, 2601, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_krksin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2601, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_270is_krksin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_270is_krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_krksin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_krksin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2601, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2601, __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("pysndlib.generators.is_krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2615
 * cdef class Absin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2615, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2615, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2615, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Absin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin___init__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Absin___init__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_frequency) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2616
 * 
 *     def __init__(self, frequency):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2616, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":2617
 *     def __init__(self, frequency):
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 2617, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2615
 * cdef class Absin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.osc = clm.make_oscil(self.frequency)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Absin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2619
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Absin_next(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Absin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2619, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Absin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2619, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2619, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2619, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2620
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_4), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (unlikely(__pyx_v_8pysndlib_10generators_PI == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2620, __pyx_L1_error)
  }
  __pyx_t_2 = PyFloat_FromDouble((2.0 / __pyx_v_8pysndlib_10generators_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_v_8pysndlib_10generators_PI == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2620, __pyx_L1_error)
  }
  __pyx_t_2 = PyFloat_FromDouble((2.0 / __pyx_v_8pysndlib_10generators_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2619
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)
 * 
 */

  /* 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("pysndlib.generators.Absin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Absin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Absin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2619, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2619, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2619, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2619, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Absin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_2next(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_2next(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Absin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2619, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2619, __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("pysndlib.generators.Absin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2623
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2623, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2623, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2623, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2623, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Absin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_4__call__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2624
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Absin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2624, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2623
 * 
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Absin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2626
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2628
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2626
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.osc.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2630
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2631, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Absin_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2632
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 2632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":2630
 *         return self.osc.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.osc.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2634
 *         self.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":2636
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2634
 *         self.osc.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.osc.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2638
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2639, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Absin_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":2640
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->osc), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 2640, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":2638
 *         return self.osc.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.osc.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":512
 * 
 * cdef class Absin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 512, __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("pysndlib.generators.Absin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Absin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 512, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Absin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":513
 * cdef class Absin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Absin_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 513, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Absin_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Absin_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5Absin_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Absin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Absin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.osc)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.osc)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Absin); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_82299867);
    __Pyx_GIVEREF(__pyx_int_82299867);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_82299867)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, None), state
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Absin); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_82299867);
    __Pyx_GIVEREF(__pyx_int_82299867);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_82299867)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Absin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Absin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Absin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Absin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Absin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Absin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Absin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Absin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Absin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2644
 * 
 * 
 * cpdef Absin make_absin(frequency=0):             # <<<<<<<<<<<<<<
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_273make_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_f_8pysndlib_10generators_make_absin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_absin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_absin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
    }
  }

  /* "pysndlib/generators.pyx":2646
 * cpdef Absin make_absin(frequency=0):
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_Absin), __pyx_v_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2646, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2644
 * 
 * 
 * cpdef Absin make_absin(frequency=0):             # <<<<<<<<<<<<<<
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_273make_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_272make_absin, "creates an absin generator (abs oscil).");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_273make_absin = {"make_absin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_273make_absin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_272make_absin};
static PyObject *__pyx_pw_8pysndlib_10generators_273make_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_absin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2644, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_absin") < 0)) __PYX_ERR(0, 2644, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_absin", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2644, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_272make_absin(__pyx_self, __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_272make_absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_absin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_absin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_absin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2644, __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("pysndlib.generators.make_absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2648
 *     return Absin(frequency)
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """(abs oscil)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_275absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_absin(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_absin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2655
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_absin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Absin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2655, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2648
 *     return Absin(frequency)
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """(abs oscil)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_275absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_274absin, "(abs oscil)\n        \n    :param gen: absin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_275absin = {"absin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_275absin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_274absin};
static PyObject *__pyx_pw_8pysndlib_10generators_275absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("absin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "absin") < 0)) __PYX_ERR(0, 2648, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Absin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("absin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2648, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Absin, 1, "gen", 0))) __PYX_ERR(0, 2648, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_274absin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_274absin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_absin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("absin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_absin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2648, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2648, __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("pysndlib.generators.absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2657
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_absin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an absin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_277is_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_absin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2664
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Absin)             # <<<<<<<<<<<<<<
 * 
 * # --------------- abcos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Absin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2657
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_absin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an absin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_277is_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_276is_absin, "\n    returns True if gen is an absin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_277is_absin = {"is_absin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_277is_absin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_276is_absin};
static PyObject *__pyx_pw_8pysndlib_10generators_277is_absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_absin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2657, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_absin") < 0)) __PYX_ERR(0, 2657, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_absin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2657, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_276is_absin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_276is_absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_absin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_absin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2657, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2657, __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("pysndlib.generators.is_absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2671
 * cdef class Abcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.a = a
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_b = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_a,&__pyx_n_s_b,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__25));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2671, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2671, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2671, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2671, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_a = values[1];
    __pyx_v_b = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2671, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos___init__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_a, __pyx_v_b);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Abcos___init__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2672
 * 
 *     def __init__(self, frequency, a=.5, b=.25):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.a = a
 *         self.b = b
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2672, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2672, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2673
 *     def __init__(self, frequency, a=.5, b=.25):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.a = a             # <<<<<<<<<<<<<<
 *         self.b = b
 *         self.ab = sqrt((self.a*self.a) - (self.b*self.b))
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2673, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":2674
 *         self.frequency = clm.hz2radians(frequency)
 *         self.a = a
 *         self.b = b             # <<<<<<<<<<<<<<
 *         self.ab = sqrt((self.a*self.a) - (self.b*self.b))
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_b); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2674, __pyx_L1_error)
  __pyx_v_self->b = __pyx_t_2;

  /* "pysndlib/generators.pyx":2675
 *         self.a = a
 *         self.b = b
 *         self.ab = sqrt((self.a*self.a) - (self.b*self.b))             # <<<<<<<<<<<<<<
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(((__pyx_v_self->a * __pyx_v_self->a) - (__pyx_v_self->b * __pyx_v_self->b))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2675, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->ab = __pyx_t_2;

  /* "pysndlib/generators.pyx":2676
 *         self.b = b
 *         self.ab = sqrt((self.a*self.a) - (self.b*self.b))
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_self->ab - __pyx_v_self->a)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->b); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_5, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyFloat_SubtractObjC(__pyx_t_4, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float__5, __pyx_t_5, .5, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2676, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":2671
 * cdef class Abcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.a = a
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2678
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Abcos_next(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Abcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2678, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Abcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2678, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2678, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2679
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return self.norm * ((self.ab / (self.a + ( self.b * cos(x)))) - 1.0)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2680
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return self.norm * ((self.ab / (self.a + ( self.b * cos(x)))) - 1.0)
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2681
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 *         return self.norm * ((self.ab / (self.a + ( self.b * cos(x)))) - 1.0)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->ab); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->b); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2681, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyFloat_SubtractObjC(__pyx_t_8, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2681, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2678
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Abcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Abcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Abcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2678, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2678, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Abcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_2next(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_2next(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Abcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2678, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2678, __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("pysndlib.generators.Abcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2683
 *         return self.norm * ((self.ab / (self.a + ( self.b * cos(x)))) - 1.0)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2683, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2683, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2683, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2683, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2684
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Abcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2684, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2684, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2683
 *         return self.norm * ((self.ab / (self.a + ( self.b * cos(x)))) - 1.0)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":521
 * 
 * cdef class Abcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 *     cdef public cython.double b
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 521, __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("pysndlib.generators.Abcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 521, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":522
 * cdef class Abcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 *     cdef public cython.double b
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 522, __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("pysndlib.generators.Abcos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 522, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":523
 *     cdef public cython.double frequency
 *     cdef public cython.double a
 *     cdef public cython.double b             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double ab
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_1b_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_1b_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_1b___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_1b___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->b); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 523, __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("pysndlib.generators.Abcos.b.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_1b_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_1b_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_1b_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_1b_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 523, __pyx_L1_error)
  __pyx_v_self->b = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.b.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":524
 *     cdef public cython.double a
 *     cdef public cython.double b
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double ab
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 524, __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("pysndlib.generators.Abcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 524, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":525
 *     cdef public cython.double b
 *     cdef public cython.double angle
 *     cdef public cython.double ab             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_2ab_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_2ab_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_2ab___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_2ab___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ab); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 525, __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("pysndlib.generators.Abcos.ab.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_2ab_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_2ab_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_2ab_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_2ab_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 525, __pyx_L1_error)
  __pyx_v_self->ab = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.ab.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":526
 *     cdef public cython.double angle
 *     cdef public cython.double ab
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 526, __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("pysndlib.generators.Abcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Abcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Abcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Abcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 526, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Abcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Abcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Abcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.ab, self.angle, self.b, self.frequency, self.norm)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->ab); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->b); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.ab, self.angle, self.b, self.frequency, self.norm)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.ab, self.angle, self.b, self.frequency, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.ab, self.angle, self.b, self.frequency, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Abcos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_49475411);
    __Pyx_GIVEREF(__pyx_int_49475411);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_49475411)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, None), state
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Abcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_49475411);
    __Pyx_GIVEREF(__pyx_int_49475411);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_49475411)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Abcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Abcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Abcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Abcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Abcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Abcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Abcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2686
 *         return self.next(fm)
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *     """
 *     creates an abcos generator that produces many cosines spaced
 */

static PyObject *__pyx_pw_8pysndlib_10generators_279make_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_f_8pysndlib_10generators_make_abcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_abcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_b = ((PyObject *)__pyx_float__25);
  struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_abcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_a = __pyx_optional_args->a;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_b = __pyx_optional_args->b;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2691
 *     by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.
 *     """
 *     return Abcos(frequency, a, b)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2691, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_a)) __PYX_ERR(0, 2691, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_b);
  __Pyx_GIVEREF(__pyx_v_b);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_b)) __PYX_ERR(0, 2691, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Abcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2686
 *         return self.next(fm)
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *     """
 *     creates an abcos generator that produces many cosines spaced
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_279make_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_278make_abcos, "\n    creates an abcos generator that produces many cosines spaced \n    by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_279make_abcos = {"make_abcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_279make_abcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_278make_abcos};
static PyObject *__pyx_pw_8pysndlib_10generators_279make_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_b = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_abcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_a,&__pyx_n_s_b,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__25));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2686, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_b);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2686, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_abcos") < 0)) __PYX_ERR(0, 2686, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_a = values[1];
    __pyx_v_b = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_abcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2686, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_278make_abcos(__pyx_self, __pyx_v_frequency, __pyx_v_a, __pyx_v_b);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_278make_abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_abcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_abcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_2.b = __pyx_v_b;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_abcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 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("pysndlib.generators.make_abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2693
 *     return Abcos(frequency, a, b)
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_281abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_abcos(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_abcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2701
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_abcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Abcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2701, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2693
 *     return Abcos(frequency, a, b)
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_281abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_280abcos, "\n    returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.\n        \n    :param gen: abcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_281abcos = {"abcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_281abcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_280abcos};
static PyObject *__pyx_pw_8pysndlib_10generators_281abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("abcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2693, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2693, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "abcos") < 0)) __PYX_ERR(0, 2693, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Abcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2693, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("abcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2693, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Abcos, 1, "gen", 0))) __PYX_ERR(0, 2693, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_280abcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_280abcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_abcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("abcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_abcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2693, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2693, __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("pysndlib.generators.abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2703
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_abcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an abcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_283is_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_abcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2710
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Abcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- r2k2cos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Abcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2703
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_abcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an abcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_283is_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_282is_abcos, "\n    returns True if gen is an abcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_283is_abcos = {"is_abcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_283is_abcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_282is_abcos};
static PyObject *__pyx_pw_8pysndlib_10generators_283is_abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_abcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2703, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_abcos") < 0)) __PYX_ERR(0, 2703, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_abcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2703, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_282is_abcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_282is_abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_abcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_abcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2703, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2703, __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("pysndlib.generators.is_abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2716
 * cdef class R2k2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2716, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2716, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2716, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2716, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos___init__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7R2k2cos___init__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2717
 * 
 *     def __init__(self, frequency, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2717, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2717, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2718
 *     def __init__(self, frequency, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2718, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2719
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cdef cython.double r2k2cos_norm(self, cython.double a):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2716
 * cdef class R2k2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2721
 *         self.angle = 0.0
 * 
 *     cdef cython.double r2k2cos_norm(self, cython.double a):             # <<<<<<<<<<<<<<
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 */

static double __pyx_f_8pysndlib_10generators_7R2k2cos_r2k2cos_norm(CYTHON_UNUSED struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_a) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("r2k2cos_norm", 1);

  /* "pysndlib/generators.pyx":2722
 * 
 *     cdef cython.double r2k2cos_norm(self, cython.double a):
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cosh); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_8pysndlib_10generators_PI * __pyx_v_a)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((2.0 * __pyx_v_a)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sinh); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_8pysndlib_10generators_PI * __pyx_v_a)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = ((2.0 * __pyx_v_a) * __pyx_v_a);
  if (unlikely(__pyx_t_8 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2722, __pyx_L1_error)
  }
  __pyx_t_4 = PyFloat_FromDouble((1.0 / __pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2722, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2721
 *         self.angle = 0.0
 * 
 *     cdef cython.double r2k2cos_norm(self, cython.double a):             # <<<<<<<<<<<<<<
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.r2k2cos_norm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2724
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7R2k2cos_next(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7R2k2cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2724, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7R2k2cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2724, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2724, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2725
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         if x > TWO_PI:
 *             x = x % TWO_PI
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2726
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:             # <<<<<<<<<<<<<<
 *             x = x % TWO_PI
 *         self.angle += fm + self.frequency
 */
  __pyx_t_8 = (__pyx_v_x > __pyx_v_8pysndlib_10generators_TWO_PI);
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":2727
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 *             x = x % TWO_PI             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return ((PI * (cosh(self.r*(PI-x))) / (sinh(self.r*PI))) - (1.0 / self.r)) / (2 * self.r * self.r2k2cos_norm(self.r))
 */
    if (unlikely(__pyx_v_8pysndlib_10generators_TWO_PI == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
      __PYX_ERR(0, 2727, __pyx_L1_error)
    }
    __pyx_v_x = __Pyx_mod_double(__pyx_v_x, __pyx_v_8pysndlib_10generators_TWO_PI);

    /* "pysndlib/generators.pyx":2726
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:             # <<<<<<<<<<<<<<
 *             x = x % TWO_PI
 *         self.angle += fm + self.frequency
 */
  }

  /* "pysndlib/generators.pyx":2728
 *         if x > TWO_PI:
 *             x = x % TWO_PI
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return ((PI * (cosh(self.r*(PI-x))) / (sinh(self.r*PI))) - (1.0 / self.r)) / (2 * self.r * self.r2k2cos_norm(self.r))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2729
 *             x = x % TWO_PI
 *         self.angle += fm + self.frequency
 *         return ((PI * (cosh(self.r*(PI-x))) / (sinh(self.r*PI))) - (1.0 / self.r)) / (2 * self.r * self.r2k2cos_norm(self.r))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cosh); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->r * (__pyx_v_8pysndlib_10generators_PI - __pyx_v_x))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sinh); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_v_8pysndlib_10generators_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(__pyx_v_self->r == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2729, __pyx_L1_error)
  }
  __pyx_t_2 = PyFloat_FromDouble((1.0 / __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->r2k2cos_norm(__pyx_v_self, __pyx_v_self->r); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2729, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(((2.0 * __pyx_v_self->r) * __pyx_t_7)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2729, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2724
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 */

  /* 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("pysndlib.generators.R2k2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2k2cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2k2cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2724, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2724, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2724, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2724, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_2next(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_2next(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_R2k2cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2724, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2724, __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("pysndlib.generators.R2k2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2731
 *         return ((PI * (cosh(self.r*(PI-x))) / (sinh(self.r*PI))) - (1.0 / self.r)) / (2 * self.r * self.r2k2cos_norm(self.r))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2731, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2731, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2731, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2731, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2732
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2732, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2731
 *         return ((PI * (cosh(self.r*(PI-x))) / (sinh(self.r*PI))) - (1.0 / self.r)) / (2 * self.r * self.r2k2cos_norm(self.r))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":534
 * 
 * cdef class R2k2cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 534, __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("pysndlib.generators.R2k2cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2k2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 534, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":535
 * cdef class R2k2cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef cython.double r2k2cos_norm(self, cython.double a)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 535, __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("pysndlib.generators.R2k2cos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2k2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 535, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":536
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef cython.double r2k2cos_norm(self, cython.double a)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 536, __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("pysndlib.generators.R2k2cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7R2k2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 536, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2k2cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2k2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_R2k2cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, None), state
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_R2k2cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_166068038);
    __Pyx_GIVEREF(__pyx_int_166068038);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_166068038)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7R2k2cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2k2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7R2k2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7R2k2cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7R2k2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2k2cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.R2k2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2734
 *         return self.next(fm)
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_285make_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_f_8pysndlib_10generators_make_r2k2cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_r2k2cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2k2cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":2738
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 *     """
 *     return R2k2cos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2738, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2738, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2k2cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2734
 *         return self.next(fm)
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_285make_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_284make_r2k2cos, "\n    creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_285make_r2k2cos = {"make_r2k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_285make_r2k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_284make_r2k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_285make_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_r2k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2734, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2734, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_r2k2cos") < 0)) __PYX_ERR(0, 2734, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_r2k2cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2734, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_284make_r2k2cos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_284make_r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_r2k2cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_r2k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_r2k2cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2734, __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("pysndlib.generators.make_r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2740
 *     return R2k2cos(frequency, r)
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_287r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_r2k2cos(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2k2cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2749
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_r2k2cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2749, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2740
 *     return R2k2cos(frequency, r)
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_287r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_286r2k2cos, "\n    returns many cosines spaced by frequency with amplitude 1/(r^2+k^2).\n        \n    :param gen: r2k2cos gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_287r2k2cos = {"r2k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_287r2k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_286r2k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_287r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("r2k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2740, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2740, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "r2k2cos") < 0)) __PYX_ERR(0, 2740, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2740, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("r2k2cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2740, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_R2k2cos, 1, "gen", 0))) __PYX_ERR(0, 2740, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_286r2k2cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_286r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_r2k2cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("r2k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_r2k2cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2740, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2740, __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("pysndlib.generators.r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2751
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2k2cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_289is_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_r2k2cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2758
 *     :rtype: bool
 *     """
 *     return isinstance(gen, R2k2cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_R2k2cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2751
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2k2cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_289is_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_288is_r2k2cos, "\n    returns True if gen is an r2k2cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_289is_r2k2cos = {"is_r2k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_289is_r2k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_288is_r2k2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_289is_r2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_r2k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2751, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_r2k2cos") < 0)) __PYX_ERR(0, 2751, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_r2k2cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2751, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_288is_r2k2cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_288is_r2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_r2k2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_r2k2cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2751, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2751, __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("pysndlib.generators.is_r2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2767
 * cdef class Blsaw(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2767, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2767, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2767, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2767, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 2767, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw___init__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Blsaw___init__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2768
 * 
 *     def __init__(self, frequency, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2768, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2768, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2769
 *     def __init__(self, frequency, n=1, r=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_n); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2769, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":2770
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2770, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2771
 *         self.n = n
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2767
 * cdef class Blsaw(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, r=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2773
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Blsaw_next(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Blsaw_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_a;
  double __pyx_v_N;
  double __pyx_v_x;
  double __pyx_v_incr;
  double __pyx_v_den;
  double __pyx_v_s1;
  double __pyx_v_s2;
  double __pyx_v_s3;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  __pyx_t_double_complex __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2773, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Blsaw_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2773, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2773, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2773, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2774
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double a = self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double N = self.n
 *         cdef cython.double x = self.angle
 */
  __pyx_t_7 = __pyx_v_self->r;
  __pyx_v_a = __pyx_t_7;

  /* "pysndlib/generators.pyx":2775
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double incr = self.frequency
 */
  __pyx_t_7 = __pyx_v_self->n;
  __pyx_v_N = __pyx_t_7;

  /* "pysndlib/generators.pyx":2776
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double incr = self.frequency
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2777
 *         cdef cython.double N = self.n
 *         cdef cython.double x = self.angle
 *         cdef cython.double incr = self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)
 *         self.angle += fm + incr
 */
  __pyx_t_7 = __pyx_v_self->frequency;
  __pyx_v_incr = __pyx_t_7;

  /* "pysndlib/generators.pyx":2778
 *         cdef cython.double x = self.angle
 *         cdef cython.double incr = self.frequency
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)             # <<<<<<<<<<<<<<
 *         self.angle += fm + incr
 *         if fabs(den) < NEARLY_ZERO:
 */
  __pyx_t_1 = PyFloat_FromDouble((-2.0 * __pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2778, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_4, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_a * __pyx_v_a)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_den = __pyx_t_7;

  /* "pysndlib/generators.pyx":2779
 *         cdef cython.double incr = self.frequency
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)
 *         self.angle += fm + incr             # <<<<<<<<<<<<<<
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_incr));

  /* "pysndlib/generators.pyx":2780
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)
 *         self.angle += fm + incr
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2780, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 2780, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":2781
 *         self.angle += fm + incr
 *         if fabs(den) < NEARLY_ZERO:
 *             return 0.0             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.double s1 = (a**(N-1.)) * sin(((N-1.0)*x) + incr)
 */
    __pyx_r = 0.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":2780
 *         cdef cython.double den = 1.0 + (-2.0 * a * cos(x)) + (a*a)
 *         self.angle += fm + incr
 *         if fabs(den) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 0.0
 * 
 */
  }

  /* "pysndlib/generators.pyx":2783
 *             return 0.0
 * 
 *         cdef cython.double s1 = (a**(N-1.)) * sin(((N-1.0)*x) + incr)             # <<<<<<<<<<<<<<
 *         cdef cython.double s2 = (a**N) * sin((N*x) + incr)
 *         cdef cython.double s3 = (a * sin(x + incr))
 */
  __pyx_t_9 = __Pyx_c_pow_double(__pyx_t_double_complex_from_parts(__pyx_v_a, 0), __pyx_t_double_complex_from_parts((__pyx_v_N - 1.), 0));
  __pyx_t_2 = __pyx_Py_FromSoftComplex(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble((((__pyx_v_N - 1.0) * __pyx_v_x) + __pyx_v_incr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2783, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2783, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_s1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2784
 * 
 *         cdef cython.double s1 = (a**(N-1.)) * sin(((N-1.0)*x) + incr)
 *         cdef cython.double s2 = (a**N) * sin((N*x) + incr)             # <<<<<<<<<<<<<<
 *         cdef cython.double s3 = (a * sin(x + incr))
 * 
 */
  __pyx_t_9 = __Pyx_c_pow_double(__pyx_t_double_complex_from_parts(__pyx_v_a, 0), __pyx_t_double_complex_from_parts(__pyx_v_N, 0));
  __pyx_t_1 = __pyx_Py_FromSoftComplex(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_N * __pyx_v_x) + __pyx_v_incr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_s2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2785
 *         cdef cython.double s1 = (a**(N-1.)) * sin(((N-1.0)*x) + incr)
 *         cdef cython.double s2 = (a**N) * sin((N*x) + incr)
 *         cdef cython.double s3 = (a * sin(x + incr))             # <<<<<<<<<<<<<<
 * 
 *         return (sin(incr) + (-s3) + (-s2) + s1) / den
 */
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble((__pyx_v_x + __pyx_v_incr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2785, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_s3 = __pyx_t_7;

  /* "pysndlib/generators.pyx":2787
 *         cdef cython.double s3 = (a * sin(x + incr))
 * 
 *         return (sin(incr) + (-s3) + (-s2) + s1) / den             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_incr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_s3)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_s2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_s1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_den); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2773
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 */

  /* 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("pysndlib.generators.Blsaw.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Blsaw_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Blsaw_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2773, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2773, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2773, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2773, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_2next(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_2next(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Blsaw->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2773, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2773, __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("pysndlib.generators.Blsaw.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2790
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2790, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2790, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2790, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2790, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_4__call__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_4__call__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2791
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Blsaw *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2791, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2790
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":545
 * 
 * cdef class Blsaw(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double n
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 545, __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("pysndlib.generators.Blsaw.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Blsaw_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 545, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":546
 * cdef class Blsaw(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double n             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_1n___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 546, __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("pysndlib.generators.Blsaw.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Blsaw_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 546, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":547
 *     cdef public cython.double frequency
 *     cdef public cython.double n
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_1r___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 547, __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("pysndlib.generators.Blsaw.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Blsaw_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Blsaw_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 547, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":548
 *     cdef public cython.double n
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 548, __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("pysndlib.generators.Blsaw.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Blsaw_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Blsaw_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Blsaw_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 548, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Blsaw_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Blsaw_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Blsaw); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_83731376);
    __Pyx_GIVEREF(__pyx_int_83731376);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_83731376)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, None), state
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Blsaw); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_83731376);
    __Pyx_GIVEREF(__pyx_int_83731376);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_83731376)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Blsaw_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Blsaw_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Blsaw_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Blsaw_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Blsaw_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Blsaw__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Blsaw.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2793
 *         return self.next(fm)
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_291make_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_f_8pysndlib_10generators_make_blsaw(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_blsaw *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_blsaw", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2795
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2795, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2795, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 2795, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Blsaw), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2793
 *         return self.next(fm)
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_291make_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_290make_blsaw, " creates a blsaw generator that produces a band-limited sawtooth wave.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_291make_blsaw = {"make_blsaw", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_291make_blsaw, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_290make_blsaw};
static PyObject *__pyx_pw_8pysndlib_10generators_291make_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_blsaw (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2793, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2793, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_blsaw") < 0)) __PYX_ERR(0, 2793, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_blsaw", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 2793, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_290make_blsaw(__pyx_self, __pyx_v_frequency, __pyx_v_n, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_290make_blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_blsaw __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_blsaw", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_blsaw(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2793, __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("pysndlib.generators.make_blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2797
 *     return Blsaw(frequency, r, n)
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a band-limited sawtooth wave.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_293blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_blsaw(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blsaw *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2805
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_blsaw(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Blsaw *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2805, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2797
 *     return Blsaw(frequency, r, n)
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a band-limited sawtooth wave.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_293blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_292blsaw, "\n    returns a band-limited sawtooth wave.\n\n    :param gen: blsaw gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_293blsaw = {"blsaw", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_293blsaw, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_292blsaw};
static PyObject *__pyx_pw_8pysndlib_10generators_293blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("blsaw (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2797, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2797, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "blsaw") < 0)) __PYX_ERR(0, 2797, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Blsaw *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2797, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("blsaw", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2797, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Blsaw, 1, "gen", 0))) __PYX_ERR(0, 2797, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_292blsaw(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_292blsaw(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_blsaw __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("blsaw", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_blsaw(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2797, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2797, __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("pysndlib.generators.blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2807
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blsaw(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blsaw
 */

static PyObject *__pyx_pw_8pysndlib_10generators_295is_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_blsaw(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2814
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Blsaw)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Blsaw); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2807
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blsaw(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blsaw
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_295is_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_294is_blsaw, "\n    returns True if gen is an blsaw\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_295is_blsaw = {"is_blsaw", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_295is_blsaw, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_294is_blsaw};
static PyObject *__pyx_pw_8pysndlib_10generators_295is_blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_blsaw (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2807, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_blsaw") < 0)) __PYX_ERR(0, 2807, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_blsaw", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2807, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_294is_blsaw(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_294is_blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_blsaw", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_blsaw(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2807, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2807, __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("pysndlib.generators.is_blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2822
 * cdef class Asyfm(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_index = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,&__pyx_n_s_index,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2822, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2822, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2822, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2822, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2822, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
    __pyx_v_index = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 2822, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm___init__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Asyfm___init__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r, PyObject *__pyx_v_index) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2823
 * 
 *     def __init__(self, frequency, ratio=1., r=1., index=1.0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2823, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2823, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2824
 *     def __init__(self, frequency, ratio=1., r=1., index=1.0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.index = index
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2824, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":2825
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.index = index
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2825, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2826
 *         self.ratio = ratio
 *         self.r = r
 *         self.index = index             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_index); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2826, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_2;

  /* "pysndlib/generators.pyx":2827
 *         self.r = r
 *         self.index = index
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2822
 * cdef class Asyfm(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2829
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_r1;
  double __pyx_v_one;
  double __pyx_v_modphase;
  double __pyx_v_result;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __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;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Asyfm_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2829, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2829, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2829, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2830
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double r1 = 1 / self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 *         cdef cython.double modphase = self.ratio * self.angle
 */
  if (unlikely(__pyx_v_self->r == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2830, __pyx_L1_error)
  }
  __pyx_v_r1 = (1.0 / __pyx_v_self->r);

  /* "pysndlib/generators.pyx":2831
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0             # <<<<<<<<<<<<<<
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r - r1) * (one + cos(modphase))) * (cos(self.angle + (.5 * self.index * (self.r+r1) * sin(modphase))))
 */
  __pyx_t_9 = (__pyx_v_self->r > 1.0);
  if (!__pyx_t_9) {
  } else {
    __pyx_t_8 = __pyx_t_9;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_9 = (-1.0 < __pyx_v_self->r);
  if (__pyx_t_9) {
    __pyx_t_9 = (__pyx_v_self->r < 0.0);
  }
  __pyx_t_8 = __pyx_t_9;
  __pyx_L3_bool_binop_done:;
  if (__pyx_t_8) {
    __pyx_t_7 = -1.0;
  } else {
    __pyx_t_7 = 1.0;
  }
  __pyx_v_one = __pyx_t_7;

  /* "pysndlib/generators.pyx":2832
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 *         cdef cython.double modphase = self.ratio * self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double result = exp(.5 * self.index * (self.r - r1) * (one + cos(modphase))) * (cos(self.angle + (.5 * self.index * (self.r+r1) * sin(modphase))))
 *         self.angle += fm + self.frequency
 */
  __pyx_v_modphase = (__pyx_v_self->ratio * __pyx_v_self->angle);

  /* "pysndlib/generators.pyx":2833
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r - r1) * (one + cos(modphase))) * (cos(self.angle + (.5 * self.index * (self.r+r1) * sin(modphase))))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return result
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(((.5 * __pyx_v_self->index) * (__pyx_v_self->r - __pyx_v_r1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_one); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_v_modphase); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = PyFloat_FromDouble(((.5 * __pyx_v_self->index) * (__pyx_v_self->r + __pyx_v_r1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_sin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = PyFloat_FromDouble(__pyx_v_modphase); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_13, __pyx_t_12};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_11, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __pyx_t_11 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2833, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2833, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_result = __pyx_t_7;

  /* "pysndlib/generators.pyx":2834
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r - r1) * (one + cos(modphase))) * (cos(self.angle + (.5 * self.index * (self.r+r1) * sin(modphase))))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2835
 *         cdef cython.double result = exp(.5 * self.index * (self.r - r1) * (one + cos(modphase))) * (cos(self.angle + (.5 * self.index * (self.r+r1) * sin(modphase))))
 *         self.angle += fm + self.frequency
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2829
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Asyfm_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2829, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2829, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2829, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2829, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_2next(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_2next(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Asyfm->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2829, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2829, __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("pysndlib.generators.Asyfm.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2837
 *         return result
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         self.next(fm)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5next_i(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_i", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Asyfm_5next_i)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2837, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2837, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2838
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):
 *         self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):
 */
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  ((struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2838, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2837
 *         return result
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5next_i(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Asyfm_5next_i = {"next_i", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_5next_i, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5next_i(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_i (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2837, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next_i") < 0)) __PYX_ERR(0, 2837, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2837, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next_i", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2837, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_4next_i(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_4next_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_i", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Asyfm->next_i(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2837, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2837, __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("pysndlib.generators.Asyfm.next_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2840
 *         self.next(fm)
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_7next_j(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Asyfm_next_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_r1;
  double __pyx_v_modphase;
  double __pyx_v_result;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_j", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next_j); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2840, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Asyfm_7next_j)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2840, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2840, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2841
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):
 *         cdef cython.double r1 = 1 / self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r + r1) * (cos(modphase) - 1.0)) * (cos(self.angle + (.5 * self.index * (self.r-r1) * sin(modphase))))
 */
  if (unlikely(__pyx_v_self->r == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2841, __pyx_L1_error)
  }
  __pyx_v_r1 = (1.0 / __pyx_v_self->r);

  /* "pysndlib/generators.pyx":2842
 *     cpdef cython.double next_j(self, cython.double fm =0.0):
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double result = exp(.5 * self.index * (self.r + r1) * (cos(modphase) - 1.0)) * (cos(self.angle + (.5 * self.index * (self.r-r1) * sin(modphase))))
 *         self.angle += fm + self.frequency
 */
  __pyx_v_modphase = (__pyx_v_self->ratio * __pyx_v_self->angle);

  /* "pysndlib/generators.pyx":2843
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r + r1) * (cos(modphase) - 1.0)) * (cos(self.angle + (.5 * self.index * (self.r-r1) * sin(modphase))))             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return result
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(((.5 * __pyx_v_self->index) * (__pyx_v_self->r + __pyx_v_r1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_modphase); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(((.5 * __pyx_v_self->index) * (__pyx_v_self->r - __pyx_v_r1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_sin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyFloat_FromDouble(__pyx_v_modphase); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10};
    __pyx_t_8 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Add(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2843, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_result = __pyx_t_7;

  /* "pysndlib/generators.pyx":2844
 *         cdef cython.double modphase = self.ratio * self.angle
 *         cdef cython.double result = exp(.5 * self.index * (self.r + r1) * (cos(modphase) - 1.0)) * (cos(self.angle + (.5 * self.index * (self.r-r1) * sin(modphase))))
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":2845
 *         cdef cython.double result = exp(.5 * self.index * (self.r + r1) * (cos(modphase) - 1.0)) * (cos(self.angle + (.5 * self.index * (self.r-r1) * sin(modphase))))
 *         self.angle += fm + self.frequency
 *         return result             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2840
 *         self.next(fm)
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_7next_j(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Asyfm_7next_j = {"next_j", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_7next_j, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_7next_j(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next_j (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2840, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next_j") < 0)) __PYX_ERR(0, 2840, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2840, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next_j", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2840, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.next_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_6next_j(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_6next_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next_j", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Asyfm->next_j(__pyx_v_self, 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2840, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2840, __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("pysndlib.generators.Asyfm.next_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2848
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_9__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_9__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2848, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2848, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2848, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2848, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_8__call__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_8__call__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2849
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2849, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2848
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":557
 * 
 * cdef class Asyfm(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 557, __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("pysndlib.generators.Asyfm.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Asyfm_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 557, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":558
 * cdef class Asyfm(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double index
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 558, __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("pysndlib.generators.Asyfm.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Asyfm_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 558, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":559
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double index
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_1r___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 559, __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("pysndlib.generators.Asyfm.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Asyfm_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 559, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":560
 *     cdef public cython.double ratio
 *     cdef public cython.double r
 *     cdef public cython.double index             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cpdef cython.double next_i(self, cython.double fm =*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5index_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5index_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5index___get__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5index___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 560, __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("pysndlib.generators.Asyfm.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5index_2__set__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Asyfm_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 560, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.index.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":561
 *     cdef public cython.double r
 *     cdef public cython.double index
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cpdef cython.double next_i(self, cython.double fm =*)
 *     cpdef cython.double next_j(self, cython.double fm =*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 561, __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("pysndlib.generators.Asyfm.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Asyfm_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Asyfm_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 561, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Asyfm_11__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_11__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_10__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_10__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index, self.r, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index, self.r, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Asyfm); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_4328264);
    __Pyx_GIVEREF(__pyx_int_4328264);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_4328264)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, None), state
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Asyfm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_4328264);
    __Pyx_GIVEREF(__pyx_int_4328264);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_4328264)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Asyfm_13__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Asyfm_13__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Asyfm_12__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Asyfm_12__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Asyfm__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Asyfm.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2851
 *         return self.next(fm)
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 */

static PyObject *__pyx_pw_8pysndlib_10generators_297make_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_f_8pysndlib_10generators_make_asyfm(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_asyfm *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_index = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_asyfm", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_r = __pyx_optional_args->r;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_index = __pyx_optional_args->index;
          }
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2855
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 *     """
 *     return Asyfm(frequency, ratio, r, index)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2855, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 2855, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_r)) __PYX_ERR(0, 2855, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_index);
  __Pyx_GIVEREF(__pyx_v_index);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_index)) __PYX_ERR(0, 2855, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2851
 *         return self.next(fm)
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_297make_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_296make_asyfm, "\n    create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_297make_asyfm = {"make_asyfm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_297make_asyfm, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_296make_asyfm};
static PyObject *__pyx_pw_8pysndlib_10generators_297make_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_asyfm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_r,&__pyx_n_s_index,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2851, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2851, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_asyfm") < 0)) __PYX_ERR(0, 2851, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_r = values[2];
    __pyx_v_index = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_asyfm", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 2851, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_296make_asyfm(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_r, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_296make_asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_r, PyObject *__pyx_v_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_asyfm __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_asyfm", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.index = __pyx_v_index;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_asyfm(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 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("pysndlib.generators.make_asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2857
 *     return Asyfm(frequency, ratio, r, index)
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     same as asyfum_i. the I0 case of the asymmetric-fm generator
 */

static PyObject *__pyx_pw_8pysndlib_10generators_299asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2866
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=0.):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2866, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2857
 *     return Asyfm(frequency, ratio, r, index)
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     same as asyfum_i. the I0 case of the asymmetric-fm generator
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_299asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_298asyfm, "\n    same as asyfum_i. the I0 case of the asymmetric-fm generator\n    \n        \n    :param gen: asyfm gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_299asyfm = {"asyfm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_299asyfm, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_298asyfm};
static PyObject *__pyx_pw_8pysndlib_10generators_299asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asyfm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2857, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2857, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asyfm") < 0)) __PYX_ERR(0, 2857, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Asyfm *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2857, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asyfm", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2857, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Asyfm, 1, "gen", 0))) __PYX_ERR(0, 2857, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_298asyfm(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_298asyfm(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_asyfm __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("asyfm", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_asyfm(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2857, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2857, __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("pysndlib.generators.asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2868
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     the I0 case of the asymmetric-fm generator
 */

static PyObject *__pyx_pw_8pysndlib_10generators_301asyfm_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm_i(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_i *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2876
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=0.):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2876, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2868
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     the I0 case of the asymmetric-fm generator
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.asyfm_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_301asyfm_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_300asyfm_i, "\n    the I0 case of the asymmetric-fm generator\n        \n    :param gen: asyfm gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_301asyfm_i = {"asyfm_i", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_301asyfm_i, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_300asyfm_i};
static PyObject *__pyx_pw_8pysndlib_10generators_301asyfm_i(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asyfm_i (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2868, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2868, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asyfm_i") < 0)) __PYX_ERR(0, 2868, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Asyfm *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2868, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asyfm_i", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2868, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.asyfm_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Asyfm, 1, "gen", 0))) __PYX_ERR(0, 2868, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_300asyfm_i(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_300asyfm_i(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_asyfm_i __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("asyfm_i", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_asyfm_i(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2868, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2868, __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("pysndlib.generators.asyfm_i", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2878
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     is the same as the CLM asymmetric-fm generator
 */

static PyObject *__pyx_pw_8pysndlib_10generators_303asyfm_j(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_asyfm_j(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_j *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2886
 *     :rtype: float
 *     """
 *     return gen.next_j(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_asyfm(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm *)__pyx_v_gen->__pyx_base.__pyx_vtab)->next_j(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2886, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2878
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     is the same as the CLM asymmetric-fm generator
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.asyfm_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_303asyfm_j(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_302asyfm_j, "\n    is the same as the CLM asymmetric-fm generator\n        \n    :param gen: asyfm gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_303asyfm_j = {"asyfm_j", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_303asyfm_j, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_302asyfm_j};
static PyObject *__pyx_pw_8pysndlib_10generators_303asyfm_j(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asyfm_j (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2878, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2878, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "asyfm_j") < 0)) __PYX_ERR(0, 2878, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Asyfm *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2878, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asyfm_j", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2878, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.asyfm_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Asyfm, 1, "gen", 0))) __PYX_ERR(0, 2878, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_302asyfm_j(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_302asyfm_j(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_asyfm_j __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("asyfm_j", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_asyfm_j(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2878, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2878, __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("pysndlib.generators.asyfm_j", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2888
 *     return gen.next_j(fm)
 * 
 * cpdef cython.bint is_asyfm(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an asyfm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_305is_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_asyfm(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2895
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Asyfm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Asyfm); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2888
 *     return gen.next_j(fm)
 * 
 * cpdef cython.bint is_asyfm(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an asyfm
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_305is_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_304is_asyfm, "\n    returns True if gen is an asyfm\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_305is_asyfm = {"is_asyfm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_305is_asyfm, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_304is_asyfm};
static PyObject *__pyx_pw_8pysndlib_10generators_305is_asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_asyfm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2888, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_asyfm") < 0)) __PYX_ERR(0, 2888, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_asyfm", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2888, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_304is_asyfm(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_304is_asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_asyfm", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_asyfm(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2888, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2888, __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("pysndlib.generators.is_asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2902
 *     bessel_peaks = [1.000,0.582,0.487,0.435,0.400,0.375,0.355,0.338,0.325,0.313,0.303,0.294,0.286,0.279,0.273,0.267,0.262,0.257,0.252,0.248]
 * 
 *     def __init__(self, frequency, n=0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Bess_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Bess_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2902, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2902, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2902, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2902, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Bess.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess___init__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_4Bess___init__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  __pyx_t_double_complex __pyx_t_7;
  __pyx_t_double_complex __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":2903
 * 
 *     def __init__(self, frequency, n=0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2903, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2903, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2904
 *     def __init__(self, frequency, n=0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         if self.n >= len(Bess.bessel_peaks):
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2904, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":2905
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         if self.n >= len(Bess.bessel_peaks):
 *             self.norm = (.67 / self.n**(1/3))
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2906
 *         self.n = n
 *         self.angle = 0.0
 *         if self.n >= len(Bess.bessel_peaks):             # <<<<<<<<<<<<<<
 *             self.norm = (.67 / self.n**(1/3))
 *         else:
 */
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess), __pyx_n_s_bessel_peaks); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_Length(__pyx_t_4); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2906, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = (__pyx_v_self->n >= __pyx_t_5);
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":2907
 *         self.angle = 0.0
 *         if self.n >= len(Bess.bessel_peaks):
 *             self.norm = (.67 / self.n**(1/3))             # <<<<<<<<<<<<<<
 *         else:
 *             self.norm = Bess.bessel_peaks[self.n]
 */
    __pyx_t_7 = __pyx_t_double_complex_from_parts(.67, 0);
    __pyx_t_8 = __Pyx_c_pow_double(__pyx_t_double_complex_from_parts(__pyx_v_self->n, 0), __pyx_t_double_complex_from_parts((1.0 / 3.0), 0));
    if (unlikely(__Pyx_c_is_zero_double(__pyx_t_8))) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 2907, __pyx_L1_error)
    }
    __pyx_t_2 = __Pyx_SoftComplexToDouble(__Pyx_c_quot_double(__pyx_t_7, __pyx_t_8), 1); if (unlikely(__pyx_t_2 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2907, __pyx_L1_error)
    __pyx_v_self->norm = __pyx_t_2;

    /* "pysndlib/generators.pyx":2906
 *         self.n = n
 *         self.angle = 0.0
 *         if self.n >= len(Bess.bessel_peaks):             # <<<<<<<<<<<<<<
 *             self.norm = (.67 / self.n**(1/3))
 *         else:
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":2909
 *             self.norm = (.67 / self.n**(1/3))
 *         else:
 *             self.norm = Bess.bessel_peaks[self.n]             # <<<<<<<<<<<<<<
 * 
 * 
 */
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess), __pyx_n_s_bessel_peaks); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_self->n, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2909, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_self->norm = __pyx_t_2;
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":2902
 *     bessel_peaks = [1.000,0.582,0.487,0.435,0.400,0.375,0.355,0.338,0.325,0.313,0.303,0.294,0.286,0.279,0.273,0.267,0.262,0.257,0.252,0.248]
 * 
 *     def __init__(self, frequency, n=0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.Bess.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2912
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Bess_next(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Bess_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_result;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2912, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Bess_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2912, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2912, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2913
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return result
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_jn(__pyx_v_self->n, __pyx_v_self->angle, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2913, __pyx_L1_error)
  if (unlikely(__pyx_v_self->norm == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2913, __pyx_L1_error)
  }
  __pyx_v_result = (__pyx_t_7 / __pyx_v_self->norm);

  /* "pysndlib/generators.pyx":2914
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return result
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":2915
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 *         return result             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_result;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2912
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 */

  /* 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("pysndlib.generators.Bess.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Bess_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Bess_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2912, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2912, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2912, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2912, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Bess.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_2next(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_2next(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Bess->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2912, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2912, __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("pysndlib.generators.Bess.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2917
 *         return result
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2917, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2917, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2917, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2917, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Bess.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_4__call__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_4__call__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2918
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Bess make_bess(frequency=0, n=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Bess *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2918, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2917
 *         return result
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Bess.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":573
 * 
 * cdef class Bess(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 573, __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("pysndlib.generators.Bess.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Bess_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Bess_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Bess_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 573, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Bess.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":574
 * cdef class Bess(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_1n___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 574, __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("pysndlib.generators.Bess.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Bess_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Bess_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Bess_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 574, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Bess.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":575
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 575, __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("pysndlib.generators.Bess.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Bess_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Bess_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Bess_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 575, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Bess.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":576
 *     cdef public cython.int n
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 576, __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("pysndlib.generators.Bess.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Bess_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Bess_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Bess_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 576, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Bess.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Bess_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Bess_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Bess); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_64927267);
    __Pyx_GIVEREF(__pyx_int_64927267);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_64927267)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, None), state
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Bess); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_64927267);
    __Pyx_GIVEREF(__pyx_int_64927267);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_64927267)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Bess.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Bess_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Bess_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Bess_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Bess.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Bess_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Bess_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Bess__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Bess.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2920
 *         return self.next(fm)
 * 
 * cpdef Bess make_bess(frequency=0, n=0):             # <<<<<<<<<<<<<<
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_307make_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_f_8pysndlib_10generators_make_bess(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_bess *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_bess", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":2922
 * cpdef Bess make_bess(frequency=0, n=0):
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2922, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 2922, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2920
 *         return self.next(fm)
 * 
 * cpdef Bess make_bess(frequency=0, n=0):             # <<<<<<<<<<<<<<
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_307make_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_306make_bess, "creates a bessel function (Jn) generator");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_307make_bess = {"make_bess", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_307make_bess, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_306make_bess};
static PyObject *__pyx_pw_8pysndlib_10generators_307make_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_bess (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2920, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2920, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_bess") < 0)) __PYX_ERR(0, 2920, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_bess", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 2920, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_306make_bess(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_306make_bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_bess __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_bess", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_bess(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2920, __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("pysndlib.generators.make_bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2924
 *     return Bess(frequency, n)
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns Jn
 */

static PyObject *__pyx_pw_8pysndlib_10generators_309bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_bess(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_bess *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2933
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_bess(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Bess *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2933, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2924
 *     return Bess(frequency, n)
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns Jn
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_309bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_308bess, "\n    returns Jn\n        \n    :param gen: bess gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_309bess = {"bess", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_309bess, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_308bess};
static PyObject *__pyx_pw_8pysndlib_10generators_309bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("bess (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2924, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2924, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "bess") < 0)) __PYX_ERR(0, 2924, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Bess *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2924, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("bess", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2924, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Bess, 1, "gen", 0))) __PYX_ERR(0, 2924, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_308bess(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_308bess(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_bess __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bess", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_bess(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2924, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2924, __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("pysndlib.generators.bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2935
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_bess(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an bess
 */

static PyObject *__pyx_pw_8pysndlib_10generators_311is_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_bess(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2942
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Bess)             # <<<<<<<<<<<<<<
 * 
 * # --------------- jjcos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Bess); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2935
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_bess(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an bess
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_311is_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_310is_bess, "\n    returns True if gen is an bess\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_311is_bess = {"is_bess", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_311is_bess, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_310is_bess};
static PyObject *__pyx_pw_8pysndlib_10generators_311is_bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_bess (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2935, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_bess") < 0)) __PYX_ERR(0, 2935, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_bess", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2935, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_310is_bess(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_310is_bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_bess", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_bess(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2935, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2935, __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("pysndlib.generators.is_bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2948
 * cdef class Jjcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_k = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_k,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2948, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2948, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2948, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2948, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2948, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_k = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 2948, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos___init__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Jjcos___init__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2949
 * 
 *     def __init__(self, frequency, r=.5, a=1., k=1.):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.a = a
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2949, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2949, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2950
 *     def __init__(self, frequency, r=.5, a=1., k=1.):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.a = a
 *         self.k = k
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2950, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":2951
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.a = a             # <<<<<<<<<<<<<<
 *         self.k = k
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2951, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":2952
 *         self.r = r
 *         self.a = a
 *         self.k = k             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2952, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_2;

  /* "pysndlib/generators.pyx":2953
 *         self.a = a
 *         self.k = k
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2948
 * cdef class Jjcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2956
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Jjcos_next(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jjcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_dc;
  double __pyx_v_norm;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2956, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Jjcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2956, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2956, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":2957
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 *         cdef cython.double norm = clm.bes_j0(self.k * sqrt((self.a*self.a) + (self.r*self.r) + (-2. * self.a * self.r))) - dc
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":2958
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)             # <<<<<<<<<<<<<<
 *         cdef cython.double norm = clm.bes_j0(self.k * sqrt((self.a*self.a) + (self.r*self.r) + (-2. * self.a * self.r))) - dc
 *         self.angle += self.frequency + fm
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0((__pyx_v_self->k * __pyx_v_self->a), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2958, __pyx_L1_error)
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_j0((__pyx_v_self->k * __pyx_v_self->r), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2958, __pyx_L1_error)
  __pyx_v_dc = (__pyx_t_7 * __pyx_t_8);

  /* "pysndlib/generators.pyx":2959
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 *         cdef cython.double norm = clm.bes_j0(self.k * sqrt((self.a*self.a) + (self.r*self.r) + (-2. * self.a * self.r))) - dc             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return (clm.bes_j0(self.k * sqrt((self.r*self.r) + (self.a*self.a) + (self.a * -2.0 * self.r * cos(x)))) - dc) / norm
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((((__pyx_v_self->a * __pyx_v_self->a) + (__pyx_v_self->r * __pyx_v_self->r)) + ((-2. * __pyx_v_self->a) * __pyx_v_self->r))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_t_8, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2959, __pyx_L1_error)
  __pyx_v_norm = (__pyx_t_7 - __pyx_v_dc);

  /* "pysndlib/generators.pyx":2960
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 *         cdef cython.double norm = clm.bes_j0(self.k * sqrt((self.a*self.a) + (self.r*self.r) + (-2. * self.a * self.r))) - dc
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return (clm.bes_j0(self.k * sqrt((self.r*self.r) + (self.a*self.a) + (self.a * -2.0 * self.r * cos(x)))) - dc) / norm
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":2961
 *         cdef cython.double norm = clm.bes_j0(self.k * sqrt((self.a*self.a) + (self.r*self.r) + (-2. * self.a * self.r))) - dc
 *         self.angle += self.frequency + fm
 *         return (clm.bes_j0(self.k * sqrt((self.r*self.r) + (self.a*self.a) + (self.a * -2.0 * self.r * cos(x)))) - dc) / norm             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_self->r * __pyx_v_self->r) + (__pyx_v_self->a * __pyx_v_self->a))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(((__pyx_v_self->a * -2.0) * __pyx_v_self->r)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
    __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = PyNumber_Multiply(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2961, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_t_7, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2961, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_8 - __pyx_v_dc);
  if (unlikely(__pyx_v_norm == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 2961, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_v_norm);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2956
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jjcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jjcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2956, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 2956, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2956, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2956, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_2next(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_2next(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Jjcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2956, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __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("pysndlib.generators.Jjcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2964
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2964, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 2964, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2964, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 2964, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":2965
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jjcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2965, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2964
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":584
 * # --------------- jjcos ---------------- #
 * cdef class Jjcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double a
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 584, __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("pysndlib.generators.Jjcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jjcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 584, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":585
 * cdef class Jjcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 *     cdef public cython.double k
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 585, __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("pysndlib.generators.Jjcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jjcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 585, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":586
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 *     cdef public cython.double k
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 586, __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("pysndlib.generators.Jjcos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jjcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 586, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":587
 *     cdef public cython.double r
 *     cdef public cython.double a
 *     cdef public cython.double k             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1k_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_1k_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1k___get__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 587, __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("pysndlib.generators.Jjcos.k.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_1k_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jjcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 587, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.k.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":588
 *     cdef public cython.double a
 *     cdef public cython.double k
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 588, __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("pysndlib.generators.Jjcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jjcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jjcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jjcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 588, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jjcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jjcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Jjcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_184566456);
    __Pyx_GIVEREF(__pyx_int_184566456);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_184566456)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, None), state
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Jjcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_184566456);
    __Pyx_GIVEREF(__pyx_int_184566456);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_184566456)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jjcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jjcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jjcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jjcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jjcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jjcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Jjcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2967
 *         return self.next(fm)
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 */

static PyObject *__pyx_pw_8pysndlib_10generators_313make_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_f_8pysndlib_10generators_make_jjcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jjcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float_1_);
  PyObject *__pyx_v_k = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jjcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_a = __pyx_optional_args->a;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_k = __pyx_optional_args->k;
          }
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":2970
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 *     return Jjcos(frequency, r, a, k)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 2970, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 2970, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a)) __PYX_ERR(0, 2970, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_k);
  __Pyx_GIVEREF(__pyx_v_k);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_k)) __PYX_ERR(0, 2970, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jjcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2967
 *         return self.next(fm)
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_313make_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_312make_jjcos, "creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_313make_jjcos = {"make_jjcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_313make_jjcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_312make_jjcos};
static PyObject *__pyx_pw_8pysndlib_10generators_313make_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_k = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_jjcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_k,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2967, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2967, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2967, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2967, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_jjcos") < 0)) __PYX_ERR(0, 2967, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_k = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_jjcos", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 2967, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_312make_jjcos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_312make_jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_jjcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jjcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_2.k = __pyx_v_k;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_jjcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2967, __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("pysndlib.generators.make_jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2972
 *     return Jjcos(frequency, r, a, k)
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by a product of Bessel functions.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_315jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_jjcos(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jjcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":2980
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_jjcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jjcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2980, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2972
 *     return Jjcos(frequency, r, a, k)
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by a product of Bessel functions.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_315jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_314jjcos, "\n    returns a sum of cosines scaled by a product of Bessel functions.\n        \n    :param gen: jjcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_315jjcos = {"jjcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_315jjcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_314jjcos};
static PyObject *__pyx_pw_8pysndlib_10generators_315jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("jjcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2972, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2972, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "jjcos") < 0)) __PYX_ERR(0, 2972, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Jjcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2972, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("jjcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2972, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Jjcos, 1, "gen", 0))) __PYX_ERR(0, 2972, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_314jjcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_314jjcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_jjcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jjcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_jjcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2972, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2972, __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("pysndlib.generators.jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2982
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jjcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jjcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_317is_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jjcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":2989
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Jjcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Jjcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":2982
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jjcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jjcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_317is_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_316is_jjcos, "\n    returns True if gen is an jjcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_317is_jjcos = {"is_jjcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_317is_jjcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_316is_jjcos};
static PyObject *__pyx_pw_8pysndlib_10generators_317is_jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_jjcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2982, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_jjcos") < 0)) __PYX_ERR(0, 2982, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_jjcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 2982, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_316is_jjcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_316is_jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_jjcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_jjcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2982, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2982, __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("pysndlib.generators.is_jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":2996
 * cdef class J0evencos(CLMGenerator):
 * 
 *     def __init__(self, frequency, index=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9J0evencos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9J0evencos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_index = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_index,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2996, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2996, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 2996, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_index = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 2996, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos___init__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9J0evencos___init__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":2997
 * 
 *     def __init__(self, frequency, index=1.):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.index = index
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2997, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 2997, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":2998
 *     def __init__(self, frequency, index=1.):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_index); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2998, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_2;

  /* "pysndlib/generators.pyx":2999
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":2996
 * cdef class J0evencos(CLMGenerator):
 * 
 *     def __init__(self, frequency, index=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3002
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9J0evencos_next(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9J0evencos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_j0;
  double __pyx_v_dc;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3002, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9J0evencos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3002, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3002, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3003
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0*j0
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3004
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)             # <<<<<<<<<<<<<<
 *         cdef cython.double dc = j0*j0
 *         self.angle += self.frequency + fm
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0((.5 * __pyx_v_self->index), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3004, __pyx_L1_error)
  __pyx_v_j0 = __pyx_t_7;

  /* "pysndlib/generators.pyx":3005
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0*j0             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         if dc == 1.0:
 */
  __pyx_v_dc = (__pyx_v_j0 * __pyx_v_j0);

  /* "pysndlib/generators.pyx":3006
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0*j0
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         if dc == 1.0:
 *             return 1.
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3007
 *         cdef cython.double dc = j0*j0
 *         self.angle += self.frequency + fm
 *         if dc == 1.0:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (clm.bes_j0(self.index * math.sin(x)) - dc) / (1.0 - dc)
 */
  __pyx_t_8 = (__pyx_v_dc == 1.0);
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":3008
 *         self.angle += self.frequency + fm
 *         if dc == 1.0:
 *             return 1.             # <<<<<<<<<<<<<<
 *         return (clm.bes_j0(self.index * math.sin(x)) - dc) / (1.0 - dc)
 * 
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":3007
 *         cdef cython.double dc = j0*j0
 *         self.angle += self.frequency + fm
 *         if dc == 1.0:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (clm.bes_j0(self.index * math.sin(x)) - dc) / (1.0 - dc)
 */
  }

  /* "pysndlib/generators.pyx":3009
 *         if dc == 1.0:
 *             return 1.
 *         return (clm.bes_j0(self.index * math.sin(x)) - dc) / (1.0 - dc)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3009, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3009, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_9 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_t_7, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3009, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_9 - __pyx_v_dc);
  __pyx_t_9 = (1.0 - __pyx_v_dc);
  if (unlikely(__pyx_t_9 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3009, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_t_9);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3002
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 */

  /* 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("pysndlib.generators.J0evencos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9J0evencos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9J0evencos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3002, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3002, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3002, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3002, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_2next(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_2next(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_J0evencos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3002, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3002, __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("pysndlib.generators.J0evencos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3012
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3012, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3012, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3012, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3012, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_4__call__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_4__call__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3013
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J0evencos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3013, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3012
 * 
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":595
 * # --------------- j0evencos ---------------- #
 * cdef class J0evencos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double index
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 595, __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("pysndlib.generators.J0evencos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_9J0evencos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 595, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":596
 * cdef class J0evencos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double index             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5index_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5index_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_5index___get__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_5index___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 596, __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("pysndlib.generators.J0evencos.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9J0evencos_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9J0evencos_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_5index_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_9J0evencos_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 596, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.index.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":597
 *     cdef public cython.double frequency
 *     cdef public cython.double index
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 597, __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("pysndlib.generators.J0evencos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9J0evencos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9J0evencos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_9J0evencos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 597, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9J0evencos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9J0evencos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_J0evencos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_233007199);
    __Pyx_GIVEREF(__pyx_int_233007199);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_233007199)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, None), state
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_J0evencos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_233007199);
    __Pyx_GIVEREF(__pyx_int_233007199);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_233007199)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9J0evencos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9J0evencos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9J0evencos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9J0evencos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9J0evencos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J0evencos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.J0evencos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3015
 *         return self.next(fm)
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_319make_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_f_8pysndlib_10generators_make_j0evencos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j0evencos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_index = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j0evencos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_index = __pyx_optional_args->index;
      }
    }
  }

  /* "pysndlib/generators.pyx":3019
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 *     """
 *     return J0evencos(frequency, index)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3019, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_index);
  __Pyx_GIVEREF(__pyx_v_index);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_index)) __PYX_ERR(0, 3019, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_J0evencos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3019, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3015
 *         return self.next(fm)
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_319make_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_318make_j0evencos, "\n    creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_319make_j0evencos = {"make_j0evencos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_319make_j0evencos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_318make_j0evencos};
static PyObject *__pyx_pw_8pysndlib_10generators_319make_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_j0evencos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_index,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3015, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3015, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_j0evencos") < 0)) __PYX_ERR(0, 3015, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_index = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_j0evencos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3015, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_318make_j0evencos(__pyx_self, __pyx_v_frequency, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_318make_j0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_j0evencos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j0evencos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.index = __pyx_v_index;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_j0evencos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3015, __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("pysndlib.generators.make_j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3021
 *     return J0evencos(frequency, index)
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a sum of cosines scaled Jk^2(index/2).
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_321j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_j0evencos(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0evencos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3028
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_j0evencos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J0evencos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3028, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3021
 *     return J0evencos(frequency, index)
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a sum of cosines scaled Jk^2(index/2).
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_321j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_320j0evencos, "returns a sum of cosines scaled Jk^2(index/2).\n        \n    :param gen: j0evencos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_321j0evencos = {"j0evencos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_321j0evencos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_320j0evencos};
static PyObject *__pyx_pw_8pysndlib_10generators_321j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("j0evencos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3021, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3021, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "j0evencos") < 0)) __PYX_ERR(0, 3021, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_J0evencos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3021, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("j0evencos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3021, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_J0evencos, 1, "gen", 0))) __PYX_ERR(0, 3021, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_320j0evencos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_320j0evencos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_j0evencos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("j0evencos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_j0evencos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3021, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3021, __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("pysndlib.generators.j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3030
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0evencos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0evencos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_323is_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j0evencos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3037
 *     :rtype: bool
 *     """
 *     return isinstance(gen, J0evencos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_J0evencos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3030
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0evencos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0evencos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_323is_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_322is_j0evencos, "\n    returns True if gen is an j0evencos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_323is_j0evencos = {"is_j0evencos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_323is_j0evencos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_322is_j0evencos};
static PyObject *__pyx_pw_8pysndlib_10generators_323is_j0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_j0evencos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3030, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_j0evencos") < 0)) __PYX_ERR(0, 3030, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_j0evencos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3030, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_322is_j0evencos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_322is_j0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_j0evencos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_j0evencos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3030, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3030, __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("pysndlib.generators.is_j0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3045
 * cdef class J2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3045, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3045, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3045, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3045, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3045, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos___init__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5J2cos___init__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  long __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_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3046
 * 
 *     def __init__(self, frequency, r=.5, n=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.n = max(n, 1)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3046, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3046, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3047
 *     def __init__(self, frequency, r=.5, n=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.n = max(n, 1)
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3047, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3048
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.n = max(n, 1)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_3 = 1;
  __Pyx_INCREF(__pyx_v_n);
  __pyx_t_4 = __pyx_v_n;
  __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_8) {
    __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3048, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_4);
    __pyx_t_5 = __pyx_t_4;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_self->n = __pyx_t_9;

  /* "pysndlib/generators.pyx":3049
 *         self.r = r
 *         self.n = max(n, 1)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3045
 * cdef class J2cos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3051
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5J2cos_next(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5J2cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_rsinx2;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3051, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5J2cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3051, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3051, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3052
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         if fabs(rsinx2) < NEARLY_ZERO:
 */
  __pyx_t_1 = PyFloat_FromDouble((2.0 * __pyx_v_self->r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((0.5 * __pyx_v_self->angle)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3052, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_rsinx2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":3053
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         if fabs(rsinx2) < NEARLY_ZERO:
 *             return 1
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3054
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 *         if fabs(rsinx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_rsinx2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 3054, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":3055
 *         self.angle += self.frequency + fm
 *         if fabs(rsinx2) < NEARLY_ZERO:
 *             return 1             # <<<<<<<<<<<<<<
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2
 * 
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":3054
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 *         if fabs(rsinx2) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2
 */
  }

  /* "pysndlib/generators.pyx":3056
 *         if fabs(rsinx2) < NEARLY_ZERO:
 *             return 1
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_jn(__pyx_v_self->n, __pyx_v_rsinx2, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3056, __pyx_L1_error)
  if (unlikely(__pyx_v_rsinx2 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3056, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_v_rsinx2);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3051
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 */

  /* 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("pysndlib.generators.J2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5J2cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5J2cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3051, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3051, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3051, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3051, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_2next(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_2next(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_J2cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3051, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3051, __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("pysndlib.generators.J2cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3058
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3058, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3058, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3058, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3058, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_4__call__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3059
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J2cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3059, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3058
 *         return clm.bes_jn(self.n, rsinx2) / rsinx2
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":606
 * 
 * cdef class J2cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 606, __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("pysndlib.generators.J2cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5J2cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 606, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J2cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":607
 * cdef class J2cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_1n___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 607, __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("pysndlib.generators.J2cos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5J2cos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 607, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J2cos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":608
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_1r___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 608, __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("pysndlib.generators.J2cos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5J2cos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 608, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J2cos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":609
 *     cdef public cython.int n
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 609, __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("pysndlib.generators.J2cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5J2cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 609, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J2cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":610
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 610, __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("pysndlib.generators.J2cos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5J2cos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5J2cos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5J2cos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 610, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J2cos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5J2cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5J2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_J2cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_190776647);
    __Pyx_GIVEREF(__pyx_int_190776647);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_190776647)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, None), state
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_J2cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_190776647);
    __Pyx_GIVEREF(__pyx_int_190776647);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_190776647)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5J2cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5J2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5J2cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5J2cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5J2cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J2cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.J2cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3061
 *         return self.next(fm)
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_325make_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_f_8pysndlib_10generators_make_j2cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j2cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j2cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_n = __pyx_optional_args->n;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3065
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 *     """
 *     return J2cos(frequency, r, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3065, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3065, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_n)) __PYX_ERR(0, 3065, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_J2cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3065, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3061
 *         return self.next(fm)
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_325make_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_324make_j2cos, "\n    creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_325make_j2cos = {"make_j2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_325make_j2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_324make_j2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_325make_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_j2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3061, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3061, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3061, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_j2cos") < 0)) __PYX_ERR(0, 3061, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_j2cos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3061, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_324make_j2cos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_324make_j2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_j2cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_j2cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3061, __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("pysndlib.generators.make_j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3067
 *     return J2cos(frequency, r, n)
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_327j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_j2cos(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j2cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3075
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_j2cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J2cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3075, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3067
 *     return J2cos(frequency, r, n)
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_327j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_326j2cos, "\n    returns a sum of cosines scaled in a very complicated way.\n    \n    :param gen: j2cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_327j2cos = {"j2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_327j2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_326j2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_327j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("j2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "j2cos") < 0)) __PYX_ERR(0, 3067, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_J2cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("j2cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3067, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_J2cos, 1, "gen", 0))) __PYX_ERR(0, 3067, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_326j2cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_326j2cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_j2cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("j2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_j2cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3067, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3067, __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("pysndlib.generators.j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3077
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j2cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_329is_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j2cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3084
 *     :rtype: bool
 *     """
 *     return isinstance(gen, J2cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_J2cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3077
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j2cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_329is_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_328is_j2cos, "\n    returns True if gen is an j2cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_329is_j2cos = {"is_j2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_329is_j2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_328is_j2cos};
static PyObject *__pyx_pw_8pysndlib_10generators_329is_j2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_j2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3077, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_j2cos") < 0)) __PYX_ERR(0, 3077, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_j2cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3077, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_328is_j2cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_328is_j2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_j2cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_j2cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3077, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3077, __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("pysndlib.generators.is_j2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3092
 * cdef class Jpcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_k = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_k,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_0_0));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3092, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3092, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3092, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3092, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3092, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_k = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 3092, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos___init__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Jpcos___init__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3093
 * 
 *     def __init__(self, frequency, r=.5, a=0.0, k=1.0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.a = a
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3093, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3093, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3094
 *     def __init__(self, frequency, r=.5, a=0.0, k=1.0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.a = a
 *         self.k = k
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3094, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3095
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.a = a             # <<<<<<<<<<<<<<
 *         self.k = k
 *         if self.r == self.a:
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3095, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":3096
 *         self.r = r
 *         self.a = a
 *         self.k = k             # <<<<<<<<<<<<<<
 *         if self.r == self.a:
 *             raise ValueError("Jpcos: r and a can't have same value")
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3096, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_2;

  /* "pysndlib/generators.pyx":3097
 *         self.a = a
 *         self.k = k
 *         if self.r == self.a:             # <<<<<<<<<<<<<<
 *             raise ValueError("Jpcos: r and a can't have same value")
 *         self.angle = 0.0
 */
  __pyx_t_3 = (__pyx_v_self->r == __pyx_v_self->a);
  if (unlikely(__pyx_t_3)) {

    /* "pysndlib/generators.pyx":3098
 *         self.k = k
 *         if self.r == self.a:
 *             raise ValueError("Jpcos: r and a can't have same value")             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3098, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __PYX_ERR(0, 3098, __pyx_L1_error)

    /* "pysndlib/generators.pyx":3097
 *         self.a = a
 *         self.k = k
 *         if self.r == self.a:             # <<<<<<<<<<<<<<
 *             raise ValueError("Jpcos: r and a can't have same value")
 *         self.angle = 0.0
 */
  }

  /* "pysndlib/generators.pyx":3099
 *         if self.r == self.a:
 *             raise ValueError("Jpcos: r and a can't have same value")
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3092
 * cdef class Jpcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3101
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Jpcos_next(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jpcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_arg;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  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("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3101, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Jpcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3101, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3101, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3101, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3102
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         if fabs(arg) < NEARLY_ZERO:
 */
  __pyx_t_1 = PyFloat_FromDouble(((__pyx_v_self->r * __pyx_v_self->r) + (__pyx_v_self->a * __pyx_v_self->a))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(((__pyx_v_self->a * -2.) * __pyx_v_self->r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_arg = __pyx_t_7;

  /* "pysndlib/generators.pyx":3103
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         if fabs(arg) < NEARLY_ZERO:
 *             return 1.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3104
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 *         if fabs(arg) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_arg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_1};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 3104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":3105
 *         self.angle += self.frequency + fm
 *         if fabs(arg) < NEARLY_ZERO:
 *             return 1.0             # <<<<<<<<<<<<<<
 * 
 *         return sin(self.k * sqrt(arg))
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":3104
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 *         if fabs(arg) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 * 
 */
  }

  /* "pysndlib/generators.pyx":3107
 *             return 1.0
 * 
 *         return sin(self.k * sqrt(arg))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_arg); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3107, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3101
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jpcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jpcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3101, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3101, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3101, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3101, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_2next(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_2next(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Jpcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3101, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3101, __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("pysndlib.generators.Jpcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3109
 *         return sin(self.k * sqrt(arg))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3109, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3109, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3109, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3109, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3110
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jpcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3110, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3109
 *         return sin(self.k * sqrt(arg))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":619
 * 
 * cdef class Jpcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double a
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 619, __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("pysndlib.generators.Jpcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jpcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 619, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":620
 * cdef class Jpcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 *     cdef public cython.double k
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 620, __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("pysndlib.generators.Jpcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jpcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 620, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":621
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 *     cdef public cython.double k
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 621, __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("pysndlib.generators.Jpcos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jpcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 621, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":622
 *     cdef public cython.double r
 *     cdef public cython.double a
 *     cdef public cython.double k             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1k_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_1k_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1k___get__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_1k___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 622, __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("pysndlib.generators.Jpcos.k.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_1k_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_1k_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jpcos_1k_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 622, __pyx_L1_error)
  __pyx_v_self->k = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.k.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":623
 *     cdef public cython.double a
 *     cdef public cython.double k
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 623, __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("pysndlib.generators.Jpcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jpcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jpcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jpcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 623, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jpcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jpcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->k); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.k, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Jpcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_184566456);
    __Pyx_GIVEREF(__pyx_int_184566456);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_184566456)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, None), state
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Jpcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_184566456);
    __Pyx_GIVEREF(__pyx_int_184566456);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_184566456)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jpcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jpcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jpcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jpcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jpcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jpcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Jpcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3112
 *         return self.next(fm)
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_331make_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_f_8pysndlib_10generators_make_jpcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jpcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float_0_0);
  PyObject *__pyx_v_k = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jpcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_a = __pyx_optional_args->a;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_k = __pyx_optional_args->k;
          }
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3116
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 *     """
 *     return Jpcos(frequency, r, a, k)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3116, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3116, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a)) __PYX_ERR(0, 3116, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_k);
  __Pyx_GIVEREF(__pyx_v_k);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_k)) __PYX_ERR(0, 3116, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jpcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3112
 *         return self.next(fm)
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_331make_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_330make_jpcos, "\n    creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_331make_jpcos = {"make_jpcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_331make_jpcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_330make_jpcos};
static PyObject *__pyx_pw_8pysndlib_10generators_331make_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_k = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_jpcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_k,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_0_0));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3112, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_k);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3112, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_jpcos") < 0)) __PYX_ERR(0, 3112, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_k = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_jpcos", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 3112, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_330make_jpcos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_k);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_330make_jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_k) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_jpcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jpcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_2.k = __pyx_v_k;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_jpcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3112, __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("pysndlib.generators.make_jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3118
 *     return Jpcos(frequency, r, a, k)
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_333jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_jpcos(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jpcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3126
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_jpcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jpcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3126, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3118
 *     return Jpcos(frequency, r, a, k)
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_333jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_332jpcos, "\n    returns a sum of cosines scaled in a very complicated way.\n    \n    :param gen: jpcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_333jpcos = {"jpcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_333jpcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_332jpcos};
static PyObject *__pyx_pw_8pysndlib_10generators_333jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("jpcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3118, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "jpcos") < 0)) __PYX_ERR(0, 3118, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Jpcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3118, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("jpcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3118, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Jpcos, 1, "gen", 0))) __PYX_ERR(0, 3118, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_332jpcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_332jpcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_jpcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jpcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_jpcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3118, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3118, __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("pysndlib.generators.jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3128
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jpcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jpcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_335is_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jpcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3135
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Jpcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- jncos ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Jpcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3128
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jpcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jpcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_335is_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_334is_jpcos, "\n    returns True if gen is an jpcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_335is_jpcos = {"is_jpcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_335is_jpcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_334is_jpcos};
static PyObject *__pyx_pw_8pysndlib_10generators_335is_jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_jpcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3128, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_jpcos") < 0)) __PYX_ERR(0, 3128, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_jpcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3128, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_334is_jpcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_334is_jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_jpcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_jpcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3128, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 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("pysndlib.generators.is_jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3141
 * cdef class Jncos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3141, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3141, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3141, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3141, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3141, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_n = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 3141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos___init__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Jncos___init__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_n) {
  int __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;

  /* "pysndlib/generators.pyx":3142
 * 
 *     def __init__(self, frequency, r=.5, a=1.0, n=0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.a = a
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3142, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3142, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3143
 *     def __init__(self, frequency, r=.5, a=1.0, n=0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.a = a
 *         self.n = n
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3143, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3144
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.a = a             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.angle = 0.0
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3144, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":3145
 *         self.r = r
 *         self.a = a
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3145, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":3146
 *         self.a = a
 *         self.n = n
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3147
 *         self.n = n
 *         self.angle = 0.0
 *         self.ra = (self.a*self.a) + (self.r * self.r)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->ra = ((__pyx_v_self->a * __pyx_v_self->a) + (__pyx_v_self->r * __pyx_v_self->r));

  /* "pysndlib/generators.pyx":3141
 * cdef class Jncos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3149
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Jncos_next(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jncos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_arg;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  double __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Jncos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3149, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3149, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3150
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         if arg < NEARLY_ZERO:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ra); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_self->a * -2.) * __pyx_v_self->r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3150, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_arg = __pyx_t_7;

  /* "pysndlib/generators.pyx":3151
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         if arg < NEARLY_ZERO:
 *             return 1.0
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3152
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 *         if arg < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         return clm.bes_jn(self.n, arg) / arg**self.n
 */
  __pyx_t_11 = (__pyx_v_arg < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  if (__pyx_t_11) {

    /* "pysndlib/generators.pyx":3153
 *         self.angle += self.frequency + fm
 *         if arg < NEARLY_ZERO:
 *             return 1.0             # <<<<<<<<<<<<<<
 *         return clm.bes_jn(self.n, arg) / arg**self.n
 * 
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":3152
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 *         if arg < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         return clm.bes_jn(self.n, arg) / arg**self.n
 */
  }

  /* "pysndlib/generators.pyx":3154
 *         if arg < NEARLY_ZERO:
 *             return 1.0
 *         return clm.bes_jn(self.n, arg) / arg**self.n             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_jn(__pyx_v_self->n, __pyx_v_arg, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3154, __pyx_L1_error)
  __pyx_t_12 = pow(__pyx_v_arg, ((double)__pyx_v_self->n));
  if (unlikely(__pyx_t_12 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3154, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_t_12);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3149
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Jncos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jncos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jncos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3149, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3149, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3149, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3149, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jncos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_2next(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_2next(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Jncos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3149, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3149, __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("pysndlib.generators.Jncos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3156
 *         return clm.bes_jn(self.n, arg) / arg**self.n
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3156, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3156, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3156, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3156, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3157
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jncos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3157, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3157, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3156
 *         return clm.bes_jn(self.n, arg) / arg**self.n
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":632
 * # --------------- jncos ---------------- #
 * cdef class Jncos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double a
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 632, __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("pysndlib.generators.Jncos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 632, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":633
 * cdef class Jncos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 633, __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("pysndlib.generators.Jncos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 633, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":634
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 634, __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("pysndlib.generators.Jncos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 634, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":635
 *     cdef public cython.double r
 *     cdef public cython.double a
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double ra
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 635, __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("pysndlib.generators.Jncos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 635, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":636
 *     cdef public cython.double a
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double ra
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 636, __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("pysndlib.generators.Jncos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 636, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":637
 *     cdef public cython.int n
 *     cdef public cython.double angle
 *     cdef public cython.double ra             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_2ra_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_2ra_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_2ra___get__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_2ra___get__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ra); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 637, __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("pysndlib.generators.Jncos.ra.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jncos_2ra_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jncos_2ra_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_2ra_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jncos_2ra_2__set__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 637, __pyx_L1_error)
  __pyx_v_self->ra = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jncos.ra.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jncos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jncos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.n, self.r, self.ra)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->ra); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.n, self.r, self.ra)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.n, self.r, self.ra)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.n, self.r, self.ra)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Jncos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_143031090);
    __Pyx_GIVEREF(__pyx_int_143031090);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_143031090)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, None), state
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Jncos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_143031090);
    __Pyx_GIVEREF(__pyx_int_143031090);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_143031090)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jncos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jncos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jncos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jncos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jncos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jncos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Jncos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3159
 *         return self.next(fm)
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_337make_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_f_8pysndlib_10generators_make_jncos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jncos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jncos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_a = __pyx_optional_args->a;
          if (__pyx_optional_args->__pyx_n > 3) {
            __pyx_v_n = __pyx_optional_args->n;
          }
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3163
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 *     """
 *     return Jncos(frequency, r, a, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3163, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3163, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a)) __PYX_ERR(0, 3163, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_n)) __PYX_ERR(0, 3163, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jncos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3163, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3159
 *         return self.next(fm)
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_337make_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_336make_jncos, "\n    creates a jncos generator that produces a sum of cosines scaled in a very complicated way.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_337make_jncos = {"make_jncos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_337make_jncos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_336make_jncos};
static PyObject *__pyx_pw_8pysndlib_10generators_337make_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_jncos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3159, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3159, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3159, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3159, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_jncos") < 0)) __PYX_ERR(0, 3159, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
    __pyx_v_n = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_jncos", 0, 0, 4, __pyx_nargs); __PYX_ERR(0, 3159, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_336make_jncos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_a, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_336make_jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_jncos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jncos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 4;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_jncos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3159, __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("pysndlib.generators.make_jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3165
 *     return Jncos(frequency, r, a, n)
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_339jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_jncos(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jncos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3173
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_jncos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jncos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3173, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3165
 *     return Jncos(frequency, r, a, n)
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_339jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_338jncos, "\n    returns a sum of cosines scaled in a very complicated way.\n      \n    :param gen: jncos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_339jncos = {"jncos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_339jncos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_338jncos};
static PyObject *__pyx_pw_8pysndlib_10generators_339jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("jncos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3165, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3165, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "jncos") < 0)) __PYX_ERR(0, 3165, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Jncos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3165, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("jncos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3165, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Jncos, 1, "gen", 0))) __PYX_ERR(0, 3165, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_338jncos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_338jncos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_jncos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jncos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_jncos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3165, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3165, __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("pysndlib.generators.jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3175
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jncos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jncos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_341is_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jncos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3182
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Jncos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Jncos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3175
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jncos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jncos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_341is_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_340is_jncos, "\n    returns True if gen is an jncos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_341is_jncos = {"is_jncos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_341is_jncos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_340is_jncos};
static PyObject *__pyx_pw_8pysndlib_10generators_341is_jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_jncos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3175, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_jncos") < 0)) __PYX_ERR(0, 3175, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_jncos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3175, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_340is_jncos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_340is_jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_jncos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_jncos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3175, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3175, __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("pysndlib.generators.is_jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3189
 * cdef class J0j1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency,index=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_index = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_index,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3189, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3189, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3189, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_index = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3189, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos___init__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7J0j1cos___init__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3190
 * 
 *     def __init__(self, frequency,index=1):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.index = index
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3190, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3190, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3191
 *     def __init__(self, frequency,index=1):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_index); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3191, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_2;

  /* "pysndlib/generators.pyx":3192
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3189
 * cdef class J0j1cos(CLMGenerator):
 * 
 *     def __init__(self, frequency,index=1):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.index = index
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3194
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7J0j1cos_next(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7J0j1cos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_j0;
  double __pyx_v_dc;
  double __pyx_v_arg;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3194, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7J0j1cos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3194, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3194, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3194, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3195
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)             # <<<<<<<<<<<<<<
 *         cdef cython.double dc = j0 * j0
 *         cdef cython.double arg = self.index * cos(self.angle)
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0((.5 * __pyx_v_self->index), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3195, __pyx_L1_error)
  __pyx_v_j0 = __pyx_t_7;

  /* "pysndlib/generators.pyx":3196
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = self.index * cos(self.angle)
 *         self.angle += self.frequency + fm
 */
  __pyx_v_dc = (__pyx_v_j0 * __pyx_v_j0);

  /* "pysndlib/generators.pyx":3197
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 *         cdef cython.double arg = self.index * cos(self.angle)             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return ((clm.bes_j0(arg) + clm.bes_j1(arg)) - dc) / 1.215
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cos); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3197, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_arg = __pyx_t_7;

  /* "pysndlib/generators.pyx":3198
 *         cdef cython.double dc = j0 * j0
 *         cdef cython.double arg = self.index * cos(self.angle)
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return ((clm.bes_j0(arg) + clm.bes_j1(arg)) - dc) / 1.215
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3199
 *         cdef cython.double arg = self.index * cos(self.angle)
 *         self.angle += self.frequency + fm
 *         return ((clm.bes_j0(arg) + clm.bes_j1(arg)) - dc) / 1.215             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_v_arg, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3199, __pyx_L1_error)
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_j1(__pyx_v_arg, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3199, __pyx_L1_error)
  __pyx_r = (((__pyx_t_7 + __pyx_t_8) - __pyx_v_dc) / 1.215);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3194
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 */

  /* 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("pysndlib.generators.J0j1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7J0j1cos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7J0j1cos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3194, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3194, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3194, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3194, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_2next(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_2next(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_J0j1cos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3194, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3194, __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("pysndlib.generators.J0j1cos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3201
 *         return ((clm.bes_j0(arg) + clm.bes_j1(arg)) - dc) / 1.215
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3201, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3201, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3201, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3201, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_4__call__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_4__call__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3202
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J0j1cos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3202, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3201
 *         return ((clm.bes_j0(arg) + clm.bes_j1(arg)) - dc) / 1.215
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":645
 * 
 * cdef class J0j1cos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double index
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 645, __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("pysndlib.generators.J0j1cos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7J0j1cos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 645, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":646
 * cdef class J0j1cos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double index             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5index_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5index_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_5index___get__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_5index___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 646, __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("pysndlib.generators.J0j1cos.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_5index_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7J0j1cos_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 646, __pyx_L1_error)
  __pyx_v_self->index = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.index.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":647
 *     cdef public cython.double frequency
 *     cdef public cython.double index
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 647, __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("pysndlib.generators.J0j1cos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_7J0j1cos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 647, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7J0j1cos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7J0j1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.index)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_J0j1cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_233007199);
    __Pyx_GIVEREF(__pyx_int_233007199);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_233007199)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, None), state
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_J0j1cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_233007199);
    __Pyx_GIVEREF(__pyx_int_233007199);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_233007199)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7J0j1cos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7J0j1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7J0j1cos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7J0j1cos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7J0j1cos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J0j1cos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.J0j1cos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3204
 *         return self.next(fm)
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_343make_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_f_8pysndlib_10generators_make_j0j1cos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_j0j1cos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_index = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j0j1cos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_index = __pyx_optional_args->index;
      }
    }
  }

  /* "pysndlib/generators.pyx":3208
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 *     """
 *     return J0j1cos(frequency, index)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3208, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_index);
  __Pyx_GIVEREF(__pyx_v_index);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_index)) __PYX_ERR(0, 3208, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_J0j1cos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3204
 *         return self.next(fm)
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_343make_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_342make_j0j1cos, "\n    creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_343make_j0j1cos = {"make_j0j1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_343make_j0j1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_342make_j0j1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_343make_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_j0j1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_index,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3204, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3204, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_j0j1cos") < 0)) __PYX_ERR(0, 3204, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_index = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_j0j1cos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3204, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_342make_j0j1cos(__pyx_self, __pyx_v_frequency, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_342make_j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_j0j1cos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_j0j1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.index = __pyx_v_index;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_j0j1cos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 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("pysndlib.generators.make_j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3210
 *     return J0j1cos(frequency, index)
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_345j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_j0j1cos(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0j1cos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3218
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_j0j1cos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_J0j1cos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3218, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3210
 *     return J0j1cos(frequency, index)
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_345j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_344j0j1cos, "\n    returns a sum of cosines scaled in a very complicated way.\n         \n    :param gen: j0j1cos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_345j0j1cos = {"j0j1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_345j0j1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_344j0j1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_345j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("j0j1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3210, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3210, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "j0j1cos") < 0)) __PYX_ERR(0, 3210, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3210, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("j0j1cos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3210, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_J0j1cos, 1, "gen", 0))) __PYX_ERR(0, 3210, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_344j0j1cos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_344j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_j0j1cos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("j0j1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_j0j1cos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3210, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3210, __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("pysndlib.generators.j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3220
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0j1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0j1cos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_347is_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_j0j1cos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3227
 *     :rtype: bool
 *     """
 *     return isinstance(gen, J0j1cos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_J0j1cos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3220
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0j1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0j1cos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_347is_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_346is_j0j1cos, "\n    returns True if gen is an j0j1cos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_347is_j0j1cos = {"is_j0j1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_347is_j0j1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_346is_j0j1cos};
static PyObject *__pyx_pw_8pysndlib_10generators_347is_j0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_j0j1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3220, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_j0j1cos") < 0)) __PYX_ERR(0, 3220, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_j0j1cos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3220, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_346is_j0j1cos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_346is_j0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_j0j1cos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_j0j1cos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3220, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3220, __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("pysndlib.generators.is_j0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3235
 * cdef class Jycos(CLMGenerator):
 * 
 *     def __init__(self, frequency,r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = max(.0001, r)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jycos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3235, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3235, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3235, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3235, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3235, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos___init__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_a);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Jycos___init__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  Py_UCS4 __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3236
 * 
 *     def __init__(self, frequency,r=1.0, a=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = max(.0001, r)
 *         self.a = a
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3236, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3237
 *     def __init__(self, frequency,r=1.0, a=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = max(.0001, r)             # <<<<<<<<<<<<<<
 *         self.a = a
 *         if self.r < self.a:
 */
  __Pyx_INCREF(__pyx_v_r);
  __pyx_t_3 = __pyx_v_r;
  __pyx_t_2 = .0001;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3237, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 3237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_7) {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_4 = __pyx_t_3;
  } else {
    __pyx_t_6 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3237, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __pyx_t_6;
    __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3237, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3238
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = max(.0001, r)
 *         self.a = a             # <<<<<<<<<<<<<<
 *         if self.r < self.a:
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3238, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":3239
 *         self.r = max(.0001, r)
 *         self.a = a
 *         if self.r < self.a:             # <<<<<<<<<<<<<<
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):
 */
  __pyx_t_7 = (__pyx_v_self->r < __pyx_v_self->a);
  if (unlikely(__pyx_t_7)) {

    /* "pysndlib/generators.pyx":3240
 *         self.a = a
 *         if self.r < self.a:
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')             # <<<<<<<<<<<<<<
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):
 *             raise ValueError(f'a: {self.a}, r: {self.r} will cause bes_y0 to return -inf')
 */
    __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = 0;
    __pyx_t_9 = 127;
    __Pyx_INCREF(__pyx_kp_u_a_2);
    __pyx_t_8 += 3;
    __Pyx_GIVEREF(__pyx_kp_u_a_2);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_a_2);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_9;
    __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_kp_u_must_be_r);
    __pyx_t_8 += 14;
    __Pyx_GIVEREF(__pyx_kp_u_must_be_r);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_must_be_r);
    __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_9;
    __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 4, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3240, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3240, __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(0, 3240, __pyx_L1_error)

    /* "pysndlib/generators.pyx":3239
 *         self.r = max(.0001, r)
 *         self.a = a
 *         if self.r < self.a:             # <<<<<<<<<<<<<<
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):
 */
  }

  /* "pysndlib/generators.pyx":3241
 *         if self.r < self.a:
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):             # <<<<<<<<<<<<<<
 *             raise ValueError(f'a: {self.a}, r: {self.r} will cause bes_y0 to return -inf')
 * 
 */
  __pyx_t_7 = (((__pyx_v_self->a * __pyx_v_self->a) + (__pyx_v_self->r * __pyx_v_self->r)) <= ((2.0 * __pyx_v_self->a) * __pyx_v_self->r));
  if (unlikely(__pyx_t_7)) {

    /* "pysndlib/generators.pyx":3242
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):
 *             raise ValueError(f'a: {self.a}, r: {self.r} will cause bes_y0 to return -inf')             # <<<<<<<<<<<<<<
 * 
 *         self.angle = 0.0
 */
    __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = 0;
    __pyx_t_9 = 127;
    __Pyx_INCREF(__pyx_kp_u_a_2);
    __pyx_t_8 += 3;
    __Pyx_GIVEREF(__pyx_kp_u_a_2);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_kp_u_a_2);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_FormatSimple(__pyx_t_3, __pyx_empty_unicode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_6) : __pyx_t_9;
    __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
    __pyx_t_6 = 0;
    __Pyx_INCREF(__pyx_kp_u_r_2);
    __pyx_t_8 += 5;
    __Pyx_GIVEREF(__pyx_kp_u_r_2);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_kp_u_r_2);
    __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_FormatSimple(__pyx_t_6, __pyx_empty_unicode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) > __pyx_t_9) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_3) : __pyx_t_9;
    __pyx_t_8 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_kp_u_will_cause_bes_y0_to_return_inf);
    __pyx_t_8 += 33;
    __Pyx_GIVEREF(__pyx_kp_u_will_cause_bes_y0_to_return_inf);
    PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_kp_u_will_cause_bes_y0_to_return_inf);
    __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_4, 5, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3242, __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(0, 3242, __pyx_L1_error)

    /* "pysndlib/generators.pyx":3241
 *         if self.r < self.a:
 *             raise ValueError(f'a: {self.a} must be < r: {self.r}')
 *         if (self.a*self.a + self.r*self.r) <= (2 * self.a * self.r):             # <<<<<<<<<<<<<<
 *             raise ValueError(f'a: {self.a}, r: {self.r} will cause bes_y0 to return -inf')
 * 
 */
  }

  /* "pysndlib/generators.pyx":3244
 *             raise ValueError(f'a: {self.a}, r: {self.r} will cause bes_y0 to return -inf')
 * 
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3235
 * cdef class Jycos(CLMGenerator):
 * 
 *     def __init__(self, frequency,r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = max(.0001, r)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3246
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Jycos_next(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Jycos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_b2c2;
  double __pyx_v_dc;
  double __pyx_v_norm;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Jycos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3246, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3246, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3246, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3247
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 *         cdef cython.double dc = clm.bes_y0(self.r) * clm.bes_j0(self.a)
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3248
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)             # <<<<<<<<<<<<<<
 *         cdef cython.double dc = clm.bes_y0(self.r) * clm.bes_j0(self.a)
 *         cdef cython.double norm = fabs(clm.bes_y0( sqrt(b2c2 + (-2 * self.r * self.a))) - dc)
 */
  __pyx_v_b2c2 = ((__pyx_v_self->r * __pyx_v_self->r) + (__pyx_v_self->a * __pyx_v_self->a));

  /* "pysndlib/generators.pyx":3249
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 *         cdef cython.double dc = clm.bes_y0(self.r) * clm.bes_j0(self.a)             # <<<<<<<<<<<<<<
 *         cdef cython.double norm = fabs(clm.bes_y0( sqrt(b2c2 + (-2 * self.r * self.a))) - dc)
 * #         print(self.r, self.a, dc,norm, b2c2, sqrt(b2c2 + (-2 * self.r * self.a)), clm.bes_y0(sqrt(b2c2 + (-2 * self.r * self.a))))
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_y0(__pyx_v_self->r, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3249, __pyx_L1_error)
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_v_self->a, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3249, __pyx_L1_error)
  __pyx_v_dc = (__pyx_t_7 * __pyx_t_8);

  /* "pysndlib/generators.pyx":3250
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 *         cdef cython.double dc = clm.bes_y0(self.r) * clm.bes_j0(self.a)
 *         cdef cython.double norm = fabs(clm.bes_y0( sqrt(b2c2 + (-2 * self.r * self.a))) - dc)             # <<<<<<<<<<<<<<
 * #         print(self.r, self.a, dc,norm, b2c2, sqrt(b2c2 + (-2 * self.r * self.a)), clm.bes_y0(sqrt(b2c2 + (-2 * self.r * self.a))))
 * #         #3.0 0.0 0.37685001001279034 0.0 9.0 3.0 0.37685001001279034
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble((__pyx_v_b2c2 + ((-2.0 * __pyx_v_self->r) * __pyx_v_self->a))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
    __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_y0(__pyx_t_8, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3250, __pyx_L1_error)
  __pyx_t_4 = PyFloat_FromDouble((__pyx_t_7 - __pyx_v_dc)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3250, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3250, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_norm = __pyx_t_7;

  /* "pysndlib/generators.pyx":3253
 * #         print(self.r, self.a, dc,norm, b2c2, sqrt(b2c2 + (-2 * self.r * self.a)), clm.bes_y0(sqrt(b2c2 + (-2 * self.r * self.a))))
 * #         #3.0 0.0 0.37685001001279034 0.0 9.0 3.0 0.37685001001279034
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return ((clm.bes_y0(sqrt(b2c2 + (-2. * self.r * self.a * cos(x))))) - dc) / norm
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3254
 * #         #3.0 0.0 0.37685001001279034 0.0 9.0 3.0 0.37685001001279034
 *         self.angle += self.frequency + fm
 *         return ((clm.bes_y0(sqrt(b2c2 + (-2. * self.r * self.a * cos(x))))) - dc) / norm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_b2c2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(((-2. * __pyx_v_self->r) * __pyx_v_self->a)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3254, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_y0(__pyx_t_7, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3254, __pyx_L1_error)
  __pyx_t_7 = (__pyx_t_8 - __pyx_v_dc);
  if (unlikely(__pyx_v_norm == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3254, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / __pyx_v_norm);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3246
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pysndlib.generators.Jycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jycos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jycos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3246, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3246, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3246, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3246, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_2next(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_2next(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Jycos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3246, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3246, __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("pysndlib.generators.Jycos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3256
 *         return ((clm.bes_y0(sqrt(b2c2 + (-2. * self.r * self.a * cos(x))))) - dc) / norm
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3256, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3256, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3256, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3256, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3257
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jycos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3257, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3256
 *         return ((clm.bes_y0(sqrt(b2c2 + (-2. * self.r * self.a * cos(x))))) - dc) / norm
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":655
 * 
 * cdef class Jycos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double a
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 655, __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("pysndlib.generators.Jycos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jycos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jycos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jycos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":656
 * cdef class Jycos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 *     cdef cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 656, __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("pysndlib.generators.Jycos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jycos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jycos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 656, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jycos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":657
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 *     cdef cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 657, __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("pysndlib.generators.Jycos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Jycos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Jycos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Jycos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 657, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jycos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jycos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.angle, self.frequency, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Jycos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_83943461);
    __Pyx_GIVEREF(__pyx_int_83943461);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_83943461)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, None), state
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Jycos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_83943461);
    __Pyx_GIVEREF(__pyx_int_83943461);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_83943461)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Jycos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Jycos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Jycos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Jycos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jycos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Jycos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3259
 *         return self.next(fm)
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_349make_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_f_8pysndlib_10generators_make_jycos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jycos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jycos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_a = __pyx_optional_args->a;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3263
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 *     """
 *     return Jycos(frequency, r,a)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3263, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3263, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a)) __PYX_ERR(0, 3263, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jycos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3259
 *         return self.next(fm)
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_349make_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_348make_jycos, "\n    creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_349make_jycos = {"make_jycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_349make_jycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_348make_jycos};
static PyObject *__pyx_pw_8pysndlib_10generators_349make_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_jycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3259, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3259, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3259, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_jycos") < 0)) __PYX_ERR(0, 3259, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_jycos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3259, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_348make_jycos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_a);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_348make_jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_jycos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_jycos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 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("pysndlib.generators.make_jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3265
 *     return Jycos(frequency, r,a)
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by Yn(r)*Jn(r).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_351jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_jycos(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jycos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3273
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_jycos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jycos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3273, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3265
 *     return Jycos(frequency, r,a)
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by Yn(r)*Jn(r).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_351jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_350jycos, "\n    returns a sum of cosines scaled by Yn(r)*Jn(r).\n        \n    :param gen: jycos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_351jycos = {"jycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_351jycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_350jycos};
static PyObject *__pyx_pw_8pysndlib_10generators_351jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("jycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3265, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3265, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "jycos") < 0)) __PYX_ERR(0, 3265, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Jycos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3265, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("jycos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3265, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Jycos, 1, "gen", 0))) __PYX_ERR(0, 3265, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_350jycos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_350jycos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_jycos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_jycos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3265, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __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("pysndlib.generators.jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3275
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jycos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_353is_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jycos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3282
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Jycos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Jycos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3275
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jycos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_353is_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_352is_jycos, "\n    returns True if gen is an jycos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_353is_jycos = {"is_jycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_353is_jycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_352is_jycos};
static PyObject *__pyx_pw_8pysndlib_10generators_353is_jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_jycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_jycos") < 0)) __PYX_ERR(0, 3275, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_jycos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3275, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_352is_jycos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_352is_jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_jycos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_jycos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3275, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 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("pysndlib.generators.is_jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3288
 * cdef class Jcos(CLMGenerator):
 * 
 *     def __init__(self, frequency,n=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Jcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Jcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_r,&__pyx_n_s_a,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3288, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3288, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3288, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3288, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3288, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_r = values[2];
    __pyx_v_a = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 3288, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos___init__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n, __pyx_v_r, __pyx_v_a);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_4Jcos___init__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_r, PyObject *__pyx_v_a) {
  int __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;

  /* "pysndlib/generators.pyx":3289
 * 
 *     def __init__(self, frequency,n=0, r=1.0, a=.5):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.r = r
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3289, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3289, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3290
 *     def __init__(self, frequency,n=0, r=1.0, a=.5):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.a = a
 */
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3290, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_3;

  /* "pysndlib/generators.pyx":3291
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.a = a
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3291, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3292
 *         self.n = n
 *         self.r = r
 *         self.a = a             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_a); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3292, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_2;

  /* "pysndlib/generators.pyx":3288
 * cdef class Jcos(CLMGenerator):
 * 
 *     def __init__(self, frequency,n=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3294
 *         self.a = a
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 */

static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_4Jcos_next(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Jcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_b;
  double __pyx_v_c;
  double __pyx_v_nf;
  double __pyx_v_dc;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_4Jcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3294, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3294, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3294, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3295
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double b = self.r
 *         cdef cython.double c = self.a
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3295, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3296
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r             # <<<<<<<<<<<<<<
 *         cdef cython.double c = self.a
 *         cdef cython.double nf = self.n
 */
  __pyx_t_7 = __pyx_v_self->r;
  __pyx_v_b = __pyx_t_7;

  /* "pysndlib/generators.pyx":3297
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 *         cdef cython.double c = self.a             # <<<<<<<<<<<<<<
 *         cdef cython.double nf = self.n
 *         cdef cython.double dc = clm.bes_j0(b) * clm.bes_j0(c)
 */
  __pyx_t_7 = __pyx_v_self->a;
  __pyx_v_c = __pyx_t_7;

  /* "pysndlib/generators.pyx":3298
 *         cdef cython.double b = self.r
 *         cdef cython.double c = self.a
 *         cdef cython.double nf = self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double dc = clm.bes_j0(b) * clm.bes_j0(c)
 *         self.angle += self.frequency + fm
 */
  __pyx_t_6 = __pyx_v_self->n;
  __pyx_v_nf = __pyx_t_6;

  /* "pysndlib/generators.pyx":3299
 *         cdef cython.double c = self.a
 *         cdef cython.double nf = self.n
 *         cdef cython.double dc = clm.bes_j0(b) * clm.bes_j0(c)             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 *         return clm.bes_jn(self.n, ((nf + 1) * (sqrt((b*b) + (c*c) + (-2.0 * b * c * cos(x)))))) - dc
 */
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_v_b, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3299, __pyx_L1_error)
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_bes_j0(__pyx_v_c, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3299, __pyx_L1_error)
  __pyx_v_dc = (__pyx_t_7 * __pyx_t_8);

  /* "pysndlib/generators.pyx":3300
 *         cdef cython.double nf = self.n
 *         cdef cython.double dc = clm.bes_j0(b) * clm.bes_j0(c)
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 *         return clm.bes_jn(self.n, ((nf + 1) * (sqrt((b*b) + (c*c) + (-2.0 * b * c * cos(x)))))) - dc
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble((__pyx_v_self->frequency + __pyx_v_fm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_t_4) < 0) __PYX_ERR(0, 3300, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":3301
 *         cdef cython.double dc = clm.bes_j0(b) * clm.bes_j0(c)
 *         self.angle += self.frequency + fm
 *         return clm.bes_jn(self.n, ((nf + 1) * (sqrt((b*b) + (c*c) + (-2.0 * b * c * cos(x)))))) - dc             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_nf + 1.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(((__pyx_v_b * __pyx_v_b) + (__pyx_v_c * __pyx_v_c))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(((-2.0 * __pyx_v_b) * __pyx_v_c)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_12, __pyx_t_11};
    __pyx_t_9 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = PyNumber_Multiply(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_bes_jn(__pyx_v_self->n, __pyx_t_8, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3301, __pyx_L1_error)
  __pyx_r = (__pyx_t_7 - __pyx_v_dc);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3294
 *         self.a = a
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("pysndlib.generators.Jcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Jcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Jcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3294, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3294, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3294, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3294, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_2next(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_2next(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Jcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3294, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3294, __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("pysndlib.generators.Jcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3303
 *         return clm.bes_jn(self.n, ((nf + 1) * (sqrt((b*b) + (c*c) + (-2.0 * b * c * cos(x)))))) - dc
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3303, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3303, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3303, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3303, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3304
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3304, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3303
 *         return clm.bes_jn(self.n, ((nf + 1) * (sqrt((b*b) + (c*c) + (-2.0 * b * c * cos(x)))))) - dc
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":665
 * # --------------- jcos  ---------------- #
 * cdef class Jcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 665, __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("pysndlib.generators.Jcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Jcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Jcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Jcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 665, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":666
 * cdef class Jcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double a
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 666, __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("pysndlib.generators.Jcos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Jcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Jcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Jcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 666, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jcos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":667
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double a
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 667, __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("pysndlib.generators.Jcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Jcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Jcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Jcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 667, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":668
 *     cdef public cython.int n
 *     cdef public cython.double r
 *     cdef public cython.double a             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1a_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_1a_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1a___get__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_1a___get__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 668, __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("pysndlib.generators.Jcos.a.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_4Jcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_4Jcos_1a_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_1a_2__set__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_4Jcos_1a_2__set__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 668, __pyx_L1_error)
  __pyx_v_self->a = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Jcos.a.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Jcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Jcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.a, self.frequency, self.n, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->a); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.a, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.a, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.a, self.frequency, self.n, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Jcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_188214648);
    __Pyx_GIVEREF(__pyx_int_188214648);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_188214648)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, None), state
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Jcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_188214648);
    __Pyx_GIVEREF(__pyx_int_188214648);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_188214648)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_4Jcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Jcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_4Jcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_4Jcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_4Jcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Jcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3306
 *         return self.next(fm)
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_355make_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_f_8pysndlib_10generators_make_jcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_jcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_a = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_a = __pyx_optional_args->a;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3310
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 *     """
 *     return Jcos(frequency, r,a)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3310, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3310, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_a);
  __Pyx_GIVEREF(__pyx_v_a);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_a)) __PYX_ERR(0, 3310, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3310, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3306
 *         return self.next(fm)
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_355make_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_354make_jcos, "\n    creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_355make_jcos = {"make_jcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_355make_jcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_354make_jcos};
static PyObject *__pyx_pw_8pysndlib_10generators_355make_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_a = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_jcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_a,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3306, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3306, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_a);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3306, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_jcos") < 0)) __PYX_ERR(0, 3306, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_a = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_jcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3306, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_354make_jcos(__pyx_self, __pyx_v_frequency, __pyx_v_r, __pyx_v_a);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_354make_jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_jcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_jcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_2.a = __pyx_v_a;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_jcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3306, __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("pysndlib.generators.make_jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3312
 *     return Jcos(frequency, r,a)
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in some complex manner.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_357jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_jcos(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3320
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_jcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Jcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3320, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3312
 *     return Jcos(frequency, r,a)
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in some complex manner.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_357jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_356jcos, "\n    returns a sum of cosines scaled in some complex manner.\n        \n    :param gen: jcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_357jcos = {"jcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_357jcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_356jcos};
static PyObject *__pyx_pw_8pysndlib_10generators_357jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("jcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3312, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3312, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "jcos") < 0)) __PYX_ERR(0, 3312, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Jcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3312, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("jcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3312, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Jcos, 1, "gen", 0))) __PYX_ERR(0, 3312, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_356jcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_356jcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_jcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("jcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_jcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3312, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3312, __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("pysndlib.generators.jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3322
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_359is_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_jcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3329
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Jcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- blackman  ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Jcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3322
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_359is_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_358is_jcos, "\n    returns True if gen is an jcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_359is_jcos = {"is_jcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_359is_jcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_358is_jcos};
static PyObject *__pyx_pw_8pysndlib_10generators_359is_jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_jcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3322, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_jcos") < 0)) __PYX_ERR(0, 3322, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_jcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3322, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_358is_jcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_358is_jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_jcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_jcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3322, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3322, __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("pysndlib.generators.is_jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3341
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]
 *     def __init__(self, frequency, cython.int n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Blackman_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Blackman_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  int __pyx_v_n;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3341, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3341, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3341, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    if (values[1]) {
      __pyx_v_n = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3341, __pyx_L3_error)
    } else {
      __pyx_v_n = ((int)1);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3341, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman___init__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_8Blackman___init__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_frequency, int __pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3342
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]
 *     def __init__(self, frequency, cython.int n=1):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3342, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3343
 *     def __init__(self, frequency, cython.int n=1):
 *         self.frequency = frequency
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 */
  __pyx_v_self->n = __pyx_v_n;

  /* "pysndlib/generators.pyx":3344
 *         self.frequency = frequency
 *         self.n = n
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_polywave); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman), __pyx_n_s_blackman_coeffs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_self->n, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3344, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3341
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]
 *     def __init__(self, frequency, cython.int n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3346
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return clm.polywave(self.osc, fm)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_8Blackman_next(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_8Blackman_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_polywave __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_8Blackman_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3347
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         return clm.polywave(self.osc, fm)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_polywave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3346
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return clm.polywave(self.osc, fm)
 * 
 */

  /* 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("pysndlib.generators.Blackman.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Blackman_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3346, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3346, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3346, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3346, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blackman.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_2next(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_2next(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Blackman->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3346, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3346, __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("pysndlib.generators.Blackman.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3349
 *         return clm.polywave(self.osc, fm)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3349, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3349, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3349, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3349, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_4__call__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_4__call__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3350
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     cpdef mus_reset(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Blackman *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3350, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3349
 *         return clm.polywave(self.osc, fm)
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3352
 *         return self.next(fm)
 * 
 *     cpdef mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_8Blackman_mus_reset(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mus_reset", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mus_reset); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3352, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_8Blackman_7mus_reset)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 0+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3352, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3353
 * 
 *     cpdef mus_reset(self):
 *         self.frequency = 0.             # <<<<<<<<<<<<<<
 *         self.angle = 0.
 * 
 */
  __pyx_v_self->frequency = 0.;

  /* "pysndlib/generators.pyx":3354
 *     cpdef mus_reset(self):
 *         self.frequency = 0.
 *         self.angle = 0.             # <<<<<<<<<<<<<<
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_angle, __pyx_float_0_) < 0) __PYX_ERR(0, 3354, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3352
 *         return self.next(fm)
 * 
 *     cpdef mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.mus_reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Blackman_7mus_reset = {"mus_reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_7mus_reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("mus_reset", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "mus_reset", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_6mus_reset(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_6mus_reset(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mus_reset", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_8Blackman_mus_reset(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 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("pysndlib.generators.Blackman.mus_reset", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":675
 * # --------------- blackman  ---------------- #
 * cdef class Blackman(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 675, __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("pysndlib.generators.Blackman.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Blackman_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Blackman_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Blackman_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 675, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blackman.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":676
 * cdef class Blackman(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 *     cpdef mus_reset(self)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_1n___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 676, __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("pysndlib.generators.Blackman.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Blackman_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Blackman_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Blackman_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 676, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Blackman.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":677
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 *     cpdef mus_reset(self)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Blackman_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Blackman_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_8Blackman_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 677, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_8Blackman_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_8Blackman_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_8Blackman_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Blackman_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.n, self.osc)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.n, self.osc)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.n, self.osc)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.n, self.osc)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Blackman); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_100967284);
    __Pyx_GIVEREF(__pyx_int_100967284);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_100967284)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, None), state
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Blackman); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_100967284);
    __Pyx_GIVEREF(__pyx_int_100967284);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_100967284)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_8Blackman_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_8Blackman_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_8Blackman_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_8Blackman_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Blackman__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Blackman.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3356
 *         self.angle = 0.
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 */

static PyObject *__pyx_pw_8pysndlib_10generators_361make_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_f_8pysndlib_10generators_make_blackman(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_blackman *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_blackman", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":3359
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 *     return Blackman(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3359, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 3359, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3356
 *         self.angle = 0.
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_361make_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_360make_blackman, "\n    creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_361make_blackman = {"make_blackman", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_361make_blackman, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_360make_blackman};
static PyObject *__pyx_pw_8pysndlib_10generators_361make_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_blackman (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3356, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3356, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_blackman") < 0)) __PYX_ERR(0, 3356, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_blackman", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3356, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_360make_blackman(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_360make_blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_blackman __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_blackman", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_blackman(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3356, __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("pysndlib.generators.make_blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3361
 *     return Blackman(frequency, n)
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_363blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_blackman(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blackman *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3368
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_blackman(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Blackman *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3368, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3361
 *     return Blackman(frequency, n)
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_363blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_362blackman, "returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)\n    \n    :param gen: blackman gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_363blackman = {"blackman", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_363blackman, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_362blackman};
static PyObject *__pyx_pw_8pysndlib_10generators_363blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("blackman (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3361, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3361, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "blackman") < 0)) __PYX_ERR(0, 3361, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Blackman *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3361, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("blackman", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3361, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Blackman, 1, "gen", 0))) __PYX_ERR(0, 3361, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_362blackman(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_362blackman(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_blackman __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("blackman", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_blackman(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3361, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3361, __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("pysndlib.generators.blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3370
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blackman(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blackman
 */

static PyObject *__pyx_pw_8pysndlib_10generators_365is_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_blackman(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3377
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Blackman)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Blackman); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3370
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blackman(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blackman
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_365is_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_364is_blackman, "\n    returns True if gen is an blackman\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_365is_blackman = {"is_blackman", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_365is_blackman, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_364is_blackman};
static PyObject *__pyx_pw_8pysndlib_10generators_365is_blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_blackman (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3370, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_blackman") < 0)) __PYX_ERR(0, 3370, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_blackman", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_364is_blackman(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_364is_blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_blackman", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_blackman(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3370, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3370, __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("pysndlib.generators.is_blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3385
 * cdef class Fmssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)# added because this did not seem righ. was generating octave higher
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_index = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_index,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3385, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3385, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3385, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3385, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_index = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3385, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb___init__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Fmssb___init__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_index) {
  int __pyx_r;
  double __pyx_t_1;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3386
 * 
 *     def __init__(self, frequency, ratio=1.0, index=1.):
 *         self.frequency = clm.hz2radians(frequency)# added because this did not seem righ. was generating octave higher             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.idx = index
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3386, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3386, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3387
 *     def __init__(self, frequency, ratio=1.0, index=1.):
 *         self.frequency = clm.hz2radians(frequency)# added because this did not seem righ. was generating octave higher
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.idx = index
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3387, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_2;

  /* "pysndlib/generators.pyx":3388
 *         self.frequency = clm.hz2radians(frequency)# added because this did not seem righ. was generating octave higher
 *         self.ratio = ratio
 *         self.idx = index             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_index); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3388, __pyx_L1_error)
  __pyx_v_self->idx = __pyx_t_2;

  /* "pysndlib/generators.pyx":3385
 * cdef class Fmssb(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)# added because this did not seem righ. was generating octave higher
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3391
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Fmssb_next(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Fmssb_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_cx;
  double __pyx_v_mx;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3391, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Fmssb_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3391, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3391, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3392
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double cx = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double mx = cx * self.ratio
 *         self.angle += fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_cx = __pyx_t_7;

  /* "pysndlib/generators.pyx":3393
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio             # <<<<<<<<<<<<<<
 *         self.angle += fm + self.frequency
 *         return (cos(cx)*sin(self.idx * cos(mx))) - (sin(cx)*sin(self.idx * sin(mx)))
 */
  __pyx_v_mx = (__pyx_v_cx * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":3394
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         return (cos(cx)*sin(self.idx * cos(mx))) - (sin(cx)*sin(self.idx * sin(mx)))
 * 
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":3395
 *         cdef cython.double mx = cx * self.ratio
 *         self.angle += fm + self.frequency
 *         return (cos(cx)*sin(self.idx * cos(mx))) - (sin(cx)*sin(self.idx * sin(mx)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_sin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->idx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_9};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_cx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_sin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_sin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyFloat_FromDouble(__pyx_v_mx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_10};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3391
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Fmssb_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Fmssb_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3391, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3391, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3391, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3391, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_2next(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_2next(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Fmssb->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3391, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3391, __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("pysndlib.generators.Fmssb.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3397
 *         return (cos(cx)*sin(self.idx * cos(mx))) - (sin(cx)*sin(self.idx * sin(mx)))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3397, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3397, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3397, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_4__call__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_4__call__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3398
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Fmssb *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3398, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3397
 *         return (cos(cx)*sin(self.idx * cos(mx))) - (sin(cx)*sin(self.idx * sin(mx)))
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3400
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def index(self) -> cython.double:
 *         return self.idx
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5index_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5index_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5index___get__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5index___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3402
 *     @property
 *     def index(self) -> cython.double:
 *         return self.idx             # <<<<<<<<<<<<<<
 * 
 *     @index.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3400
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def index(self) -> cython.double:
 *         return self.idx
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.index.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3404
 *         return self.idx
 * 
 *     @index.setter             # <<<<<<<<<<<<<<
 *     def index(self, val: cython.double):
 *         self.idx = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5index_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3405, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.index.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5index_2__set__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Fmssb_5index_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;

  /* "pysndlib/generators.pyx":3406
 *     @index.setter
 *     def index(self, val: cython.double):
 *         self.idx = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->idx = __pyx_v_val;

  /* "pysndlib/generators.pyx":3404
 *         return self.idx
 * 
 *     @index.setter             # <<<<<<<<<<<<<<
 *     def index(self, val: cython.double):
 *         self.idx = val
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":686
 * 
 * cdef class Fmssb(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.double idx
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 686, __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("pysndlib.generators.Fmssb.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Fmssb_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 686, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":687
 * cdef class Fmssb(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.double idx
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 687, __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("pysndlib.generators.Fmssb.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Fmssb_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 687, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":688
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.double idx             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_3idx_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_3idx_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_3idx___get__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_3idx___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->idx); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 688, __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("pysndlib.generators.Fmssb.idx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_3idx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_3idx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_3idx_2__set__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Fmssb_3idx_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error)
  __pyx_v_self->idx = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.idx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":689
 *     cdef public cython.double ratio
 *     cdef public cython.double idx
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 689, __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("pysndlib.generators.Fmssb.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Fmssb_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Fmssb_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 689, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Fmssb_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Fmssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.idx, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->idx); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.idx, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.idx, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.idx, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Fmssb); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_123870349);
    __Pyx_GIVEREF(__pyx_int_123870349);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_123870349)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, None), state
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Fmssb); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_123870349);
    __Pyx_GIVEREF(__pyx_int_123870349);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_123870349)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Fmssb_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Fmssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Fmssb_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Fmssb_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Fmssb_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Fmssb__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Fmssb.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3409
 * 
 * 
 * cpdef Fmssb make_fmssb(frequency=0, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an fmssb generator that produces single-sideband FM.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_367make_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_f_8pysndlib_10generators_make_fmssb(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_fmssb *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_ratio = ((PyObject *)__pyx_float_1_0);
  PyObject *__pyx_v_index = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_fmssb", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_ratio = __pyx_optional_args->ratio;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_index = __pyx_optional_args->index;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3413
 *     creates an fmssb generator that produces single-sideband FM.
 *     """
 *     return Fmssb(frequency, ratio, index)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3413, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_ratio);
  __Pyx_GIVEREF(__pyx_v_ratio);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_ratio)) __PYX_ERR(0, 3413, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_index);
  __Pyx_GIVEREF(__pyx_v_index);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_index)) __PYX_ERR(0, 3413, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Fmssb), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3409
 * 
 * 
 * cpdef Fmssb make_fmssb(frequency=0, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an fmssb generator that produces single-sideband FM.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_367make_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_366make_fmssb, "\n    creates an fmssb generator that produces single-sideband FM.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_367make_fmssb = {"make_fmssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_367make_fmssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_366make_fmssb};
static PyObject *__pyx_pw_8pysndlib_10generators_367make_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_index = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_fmssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_index,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3409, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_index);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3409, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_fmssb") < 0)) __PYX_ERR(0, 3409, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_index = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_fmssb", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3409, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_366make_fmssb(__pyx_self, __pyx_v_frequency, __pyx_v_ratio, __pyx_v_index);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_366make_fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_index) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_fmssb __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_fmssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.ratio = __pyx_v_ratio;
  __pyx_t_2.index = __pyx_v_index;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_fmssb(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3409, __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("pysndlib.generators.make_fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3415
 *     return Fmssb(frequency, ratio, index)
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns single-sideband FM.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_369fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_fmssb(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_fmssb *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3424
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_fmssb(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Fmssb *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3424, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3415
 *     return Fmssb(frequency, ratio, index)
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns single-sideband FM.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_369fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_368fmssb, "\n    returns single-sideband FM.\n    \n    :param gen: fmssb gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_369fmssb = {"fmssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_369fmssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_368fmssb};
static PyObject *__pyx_pw_8pysndlib_10generators_369fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fmssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3415, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3415, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fmssb") < 0)) __PYX_ERR(0, 3415, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Fmssb *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3415, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fmssb", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3415, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Fmssb, 1, "gen", 0))) __PYX_ERR(0, 3415, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_368fmssb(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_368fmssb(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_fmssb __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fmssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_fmssb(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3415, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3415, __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("pysndlib.generators.fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3426
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_fmssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an fmssb
 */

static PyObject *__pyx_pw_8pysndlib_10generators_371is_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_fmssb(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3433
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Fmssb)             # <<<<<<<<<<<<<<
 * 
 * # --------------- k3sin  ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Fmssb); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3426
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_fmssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an fmssb
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_371is_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_370is_fmssb, "\n    returns True if gen is an fmssb\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_371is_fmssb = {"is_fmssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_371is_fmssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_370is_fmssb};
static PyObject *__pyx_pw_8pysndlib_10generators_371is_fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_fmssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3426, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_fmssb") < 0)) __PYX_ERR(0, 3426, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_fmssb", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3426, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_370is_fmssb(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_370is_fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_fmssb", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_fmssb(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3426, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3426, __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("pysndlib.generators.is_fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3438
 * cdef class K3sin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.coeffs = np.array([0.0, (PI*PI) / 6.0, PI / -4.0, .08333])
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K3sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K3sin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3438, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3438, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_frequency = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3438, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin___init__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), __pyx_v_frequency);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5K3sin___init__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_frequency) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3439
 * 
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.coeffs = np.array([0.0, (PI*PI) / 6.0, PI / -4.0, .08333])
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3439, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3439, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3440
 *     def __init__(self, frequency):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.coeffs = np.array([0.0, (PI*PI) / 6.0, PI / -4.0, .08333])             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(((__pyx_v_8pysndlib_10generators_PI * __pyx_v_8pysndlib_10generators_PI) / 6.0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyFloat_FromDouble((__pyx_v_8pysndlib_10generators_PI / -4.0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyList_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_0_0)) __PYX_ERR(0, 3440, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_4)) __PYX_ERR(0, 3440, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 2, __pyx_t_6)) __PYX_ERR(0, 3440, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__08333);
  __Pyx_GIVEREF(__pyx_float__08333);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float__08333)) __PYX_ERR(0, 3440, __pyx_L1_error);
  __pyx_t_4 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_8 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_8 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_7};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 3440, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->coeffs);
  __Pyx_DECREF((PyObject *)__pyx_v_self->coeffs);
  __pyx_v_self->coeffs = ((PyArrayObject *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3441
 *         self.frequency = clm.hz2radians(frequency)
 *         self.coeffs = np.array([0.0, (PI*PI) / 6.0, PI / -4.0, .08333])
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3438
 * cdef class K3sin(CLMGenerator):
 * 
 *     def __init__(self, frequency):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.coeffs = np.array([0.0, (PI*PI) / 6.0, PI / -4.0, .08333])
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3444
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5K3sin_next(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5K3sin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3444, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5K3sin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3444, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3444, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3445
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         if not 0.0 <= x <= TWO_PI:
 *             x = x % TWO_PI*2
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3446
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:             # <<<<<<<<<<<<<<
 *             x = x % TWO_PI*2
 *         self.angle = x + fm + self.frequency
 */
  __pyx_t_8 = (0.0 <= __pyx_v_x);
  if (__pyx_t_8) {
    __pyx_t_8 = (__pyx_v_x <= __pyx_v_8pysndlib_10generators_TWO_PI);
  }
  __pyx_t_9 = (!__pyx_t_8);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":3447
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 *             x = x % TWO_PI*2             # <<<<<<<<<<<<<<
 *         self.angle = x + fm + self.frequency
 *         return clm.polynomial(self.coeffs, x)
 */
    if (unlikely(__pyx_v_8pysndlib_10generators_TWO_PI == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
      __PYX_ERR(0, 3447, __pyx_L1_error)
    }
    __pyx_v_x = (__Pyx_mod_double(__pyx_v_x, __pyx_v_8pysndlib_10generators_TWO_PI) * 2.0);

    /* "pysndlib/generators.pyx":3446
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:             # <<<<<<<<<<<<<<
 *             x = x % TWO_PI*2
 *         self.angle = x + fm + self.frequency
 */
  }

  /* "pysndlib/generators.pyx":3448
 *         if not 0.0 <= x <= TWO_PI:
 *             x = x % TWO_PI*2
 *         self.angle = x + fm + self.frequency             # <<<<<<<<<<<<<<
 *         return clm.polynomial(self.coeffs, x)
 * 
 */
  __pyx_v_self->angle = ((__pyx_v_x + __pyx_v_fm) + __pyx_v_self->frequency);

  /* "pysndlib/generators.pyx":3449
 *             x = x % TWO_PI*2
 *         self.angle = x + fm + self.frequency
 *         return clm.polynomial(self.coeffs, x)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->coeffs);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_polynomial(((PyArrayObject *)__pyx_t_1), __pyx_v_x, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3444
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 */

  /* 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("pysndlib.generators.K3sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K3sin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3444, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3444, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3444, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3444, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K3sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_2next(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_2next(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_K3sin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3444, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3444, __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("pysndlib.generators.K3sin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3451
 *         return clm.polynomial(self.coeffs, x)
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3451, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3451, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3451, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3451, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_4__call__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_4__call__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3452
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     def mus_reset(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K3sin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3452, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3452, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3451
 *         return clm.polynomial(self.coeffs, x)
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3454
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K3sin_7mus_reset = {"mus_reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_7mus_reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("mus_reset", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "mus_reset", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_6mus_reset(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_6mus_reset(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_reset", 1);

  /* "pysndlib/generators.pyx":3455
 * 
 *     def mus_reset(self):
 *         self.frequency = 0.             # <<<<<<<<<<<<<<
 *         self.angle = 0.
 * 
 */
  __pyx_v_self->frequency = 0.;

  /* "pysndlib/generators.pyx":3456
 *     def mus_reset(self):
 *         self.frequency = 0.
 *         self.angle = 0.             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->angle = 0.;

  /* "pysndlib/generators.pyx":3454
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":697
 * 
 * cdef class K3sin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public np.ndarray coeffs
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 697, __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("pysndlib.generators.K3sin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K3sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K3sin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K3sin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 697, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K3sin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":698
 * cdef class K3sin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public np.ndarray coeffs             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs___get__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_6coeffs___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->coeffs);
  __pyx_r = ((PyObject *)__pyx_v_self->coeffs);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_2__set__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 698, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->coeffs);
  __Pyx_DECREF((PyObject *)__pyx_v_self->coeffs);
  __pyx_v_self->coeffs = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.K3sin.coeffs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_4__del__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_5K3sin_6coeffs_4__del__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->coeffs);
  __Pyx_DECREF((PyObject *)__pyx_v_self->coeffs);
  __pyx_v_self->coeffs = ((PyArrayObject *)Py_None);

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

/* "pysndlib/generators.pxd":699
 *     cdef public cython.double frequency
 *     cdef public np.ndarray coeffs
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_5angle___get__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 699, __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("pysndlib.generators.K3sin.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5K3sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5K3sin_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5K3sin_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 699, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.K3sin.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K3sin_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.coeffs, self.frequency)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->coeffs);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->coeffs);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->coeffs))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.coeffs, self.frequency)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.coeffs, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.coeffs is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.coeffs, self.frequency)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.coeffs is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->coeffs) != Py_None);
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.coeffs is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.coeffs is not None
 *     if use_setstate:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_K3sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_149852974);
    __Pyx_GIVEREF(__pyx_int_149852974);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_149852974)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.coeffs is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, None), state
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_K3sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_149852974);
    __Pyx_GIVEREF(__pyx_int_149852974);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_149852974)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5K3sin_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5K3sin_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5K3sin_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5K3sin_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K3sin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.K3sin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3459
 * 
 * 
 * cpdef K3sin make_k3sin(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_373make_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_f_8pysndlib_10generators_make_k3sin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_k3sin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k3sin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
    }
  }

  /* "pysndlib/generators.pyx":3461
 * cpdef K3sin make_k3sin(frequency=0, n=1):
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin), __pyx_v_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3459
 * 
 * 
 * cpdef K3sin make_k3sin(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_373make_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_372make_k3sin, "creates a k3sin generator that produces a sum of sines scaled by k^3.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_373make_k3sin = {"make_k3sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_373make_k3sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_372make_k3sin};
static PyObject *__pyx_pw_8pysndlib_10generators_373make_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_k3sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3459, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3459, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_k3sin") < 0)) __PYX_ERR(0, 3459, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_k3sin", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3459, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_372make_k3sin(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_372make_k3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_k3sin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_k3sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_k3sin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3459, __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("pysndlib.generators.make_k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3463
 *     return K3sin(frequency)
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by k^3.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_375k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_k3sin(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k3sin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3471
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_k3sin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_K3sin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3471, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3463
 *     return K3sin(frequency)
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by k^3.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_375k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_374k3sin, "\n    returns a sum of sines scaled by k^3.\n    \n    :param gen: k3sin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_375k3sin = {"k3sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_375k3sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_374k3sin};
static PyObject *__pyx_pw_8pysndlib_10generators_375k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("k3sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3463, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3463, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "k3sin") < 0)) __PYX_ERR(0, 3463, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_K3sin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3463, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("k3sin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3463, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_K3sin, 1, "gen", 0))) __PYX_ERR(0, 3463, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_374k3sin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_374k3sin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_k3sin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("k3sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_k3sin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3463, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3463, __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("pysndlib.generators.k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3473
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k3sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k3sin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_377is_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_k3sin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3480
 *     :rtype: bool
 *     """
 *     return isinstance(gen, K3sin)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_K3sin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3473
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k3sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k3sin
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_377is_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_376is_k3sin, "\n    returns True if gen is an k3sin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_377is_k3sin = {"is_k3sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_377is_k3sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_376is_k3sin};
static PyObject *__pyx_pw_8pysndlib_10generators_377is_k3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_k3sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3473, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_k3sin") < 0)) __PYX_ERR(0, 3473, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_k3sin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3473, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_376is_k3sin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_376is_k3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_k3sin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_k3sin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3473, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3473, __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("pysndlib.generators.is_k3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3487
 * cdef class Izcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3487, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3487, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3487, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3487, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos___init__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_5Izcos___init__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  double __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3488
 * 
 *     def __init__(self, frequency, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3488, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3488, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_2;

  /* "pysndlib/generators.pyx":3489
 *     def __init__(self, frequency, r=1.0):
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.dc = clm.bes_i0(self.r)
 */
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3489, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_2;

  /* "pysndlib/generators.pyx":3490
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.dc = clm.bes_i0(self.r)
 *         self.norm = exp(self.r) - self.dc
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":3491
 *         self.r = r
 *         self.angle = 0.0
 *         self.dc = clm.bes_i0(self.r)             # <<<<<<<<<<<<<<
 *         self.norm = exp(self.r) - self.dc
 *         self.inorm = 1.0 / self.norm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_bes_i0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->dc = __pyx_t_2;

  /* "pysndlib/generators.pyx":3492
 *         self.angle = 0.0
 *         self.dc = clm.bes_i0(self.r)
 *         self.norm = exp(self.r) - self.dc             # <<<<<<<<<<<<<<
 *         self.inorm = 1.0 / self.norm
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_exp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_4};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->dc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3492, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->norm = __pyx_t_2;

  /* "pysndlib/generators.pyx":3493
 *         self.dc = clm.bes_i0(self.r)
 *         self.norm = exp(self.r) - self.dc
 *         self.inorm = 1.0 / self.norm             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  if (unlikely(__pyx_v_self->norm == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3493, __pyx_L1_error)
  }
  __pyx_v_self->inorm = (1.0 / __pyx_v_self->norm);

  /* "pysndlib/generators.pyx":3487
 * cdef class Izcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3495
 *         self.inorm = 1.0 / self.norm
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 */

static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_5Izcos_next(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Izcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_5Izcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3495, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3495, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3495, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3496
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         self.angle = x + fm + self.frequency
 *         if abs(self.norm) < NEARLY_ZERO:
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3497
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency             # <<<<<<<<<<<<<<
 *         if abs(self.norm) < NEARLY_ZERO:
 *             return 1.
 */
  __pyx_v_self->angle = ((__pyx_v_x + __pyx_v_fm) + __pyx_v_self->frequency);

  /* "pysndlib/generators.pyx":3498
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 *         if abs(self.norm) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm
 */
  __pyx_t_8 = (fabs(__pyx_v_self->norm) < __pyx_v_8pysndlib_10generators_NEARLY_ZERO);
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":3499
 *         self.angle = x + fm + self.frequency
 *         if abs(self.norm) < NEARLY_ZERO:
 *             return 1.             # <<<<<<<<<<<<<<
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm
 * 
 */
    __pyx_r = 1.;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":3498
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 *         if abs(self.norm) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm
 */
  }

  /* "pysndlib/generators.pyx":3500
 *         if abs(self.norm) < NEARLY_ZERO:
 *             return 1.
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_math); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_cos); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_10, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_9, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->dc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_9 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->inorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3500, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3495
 *         self.inorm = 1.0 / self.norm
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Izcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3495, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3495, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3495, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3495, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Izcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_2next(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_2next(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Izcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3495, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3495, __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("pysndlib.generators.Izcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3502
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3502, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3502, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3502, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3502, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3503
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     def mus_reset(self):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Izcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3503, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3502
 *         return (exp(self.r * math.cos(x)) - self.dc) * self.inorm
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3505
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Izcos_7mus_reset = {"mus_reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_7mus_reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_7mus_reset(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_reset (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("mus_reset", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "mus_reset", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_6mus_reset(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_6mus_reset(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_reset", 1);

  /* "pysndlib/generators.pyx":3506
 * 
 *     def mus_reset(self):
 *         self.frequency = 0.             # <<<<<<<<<<<<<<
 *         self.angle = 0.
 * 
 */
  __pyx_v_self->frequency = 0.;

  /* "pysndlib/generators.pyx":3507
 *     def mus_reset(self):
 *         self.frequency = 0.
 *         self.angle = 0.             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_v_self->angle = 0.;

  /* "pysndlib/generators.pyx":3505
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3509
 *         self.angle = 0.
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3511
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.r             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3509
 *         self.angle = 0.
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.r
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3513
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3514, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3515
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val             # <<<<<<<<<<<<<<
 *         self.dc = clm.bes_i0(val)
 *         self.norm = exp(self.r) - self.dc
 */
  __pyx_v_self->r = __pyx_v_val;

  /* "pysndlib/generators.pyx":3516
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 *         self.dc = clm.bes_i0(val)             # <<<<<<<<<<<<<<
 *         self.norm = exp(self.r) - self.dc
 *         self.inorm = 1.0 / self.norm
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_bes_i0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3516, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->dc = __pyx_t_6;

  /* "pysndlib/generators.pyx":3517
 *         self.r = val
 *         self.dc = clm.bes_i0(val)
 *         self.norm = exp(self.r) - self.dc             # <<<<<<<<<<<<<<
 *         self.inorm = 1.0 / self.norm
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_exp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->dc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_self->norm = __pyx_t_6;

  /* "pysndlib/generators.pyx":3518
 *         self.dc = clm.bes_i0(val)
 *         self.norm = exp(self.r) - self.dc
 *         self.inorm = 1.0 / self.norm             # <<<<<<<<<<<<<<
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):
 */
  if (unlikely(__pyx_v_self->norm == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 3518, __pyx_L1_error)
  }
  __pyx_v_self->inorm = (1.0 / __pyx_v_self->norm);

  /* "pysndlib/generators.pyx":3513
 *         return self.r
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.r = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":707
 * # --------------- izcos  ---------------- # #
 * cdef class Izcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 707, __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("pysndlib.generators.Izcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 707, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":708
 * cdef class Izcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double dc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_1r___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 708, __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("pysndlib.generators.Izcos.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 708, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":709
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double dc
 *     cdef public cython.double norm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 709, __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("pysndlib.generators.Izcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 709, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":710
 *     cdef public cython.double r
 *     cdef public cython.double angle
 *     cdef public cython.double dc             # <<<<<<<<<<<<<<
 *     cdef public cython.double norm
 *     cdef public cython.double inorm
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_2dc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_2dc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_2dc___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_2dc___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->dc); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 710, __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("pysndlib.generators.Izcos.dc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_2dc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_2dc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_2dc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_2dc_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 710, __pyx_L1_error)
  __pyx_v_self->dc = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.dc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":711
 *     cdef public cython.double angle
 *     cdef public cython.double dc
 *     cdef public cython.double norm             # <<<<<<<<<<<<<<
 *     cdef public cython.double inorm
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_4norm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_4norm___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_4norm___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 711, __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("pysndlib.generators.Izcos.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_4norm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_4norm_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 711, __pyx_L1_error)
  __pyx_v_self->norm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":712
 *     cdef public cython.double dc
 *     cdef public cython.double norm
 *     cdef public cython.double inorm             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5inorm_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_5inorm_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_5inorm___get__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_5inorm___get__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->inorm); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 712, __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("pysndlib.generators.Izcos.inorm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_5Izcos_5inorm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_5Izcos_5inorm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_5inorm_2__set__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_5Izcos_5inorm_2__set__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 712, __pyx_L1_error)
  __pyx_v_self->inorm = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Izcos.inorm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Izcos_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.dc, self.frequency, self.inorm, self.norm, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->dc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->inorm); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->norm); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.dc, self.frequency, self.inorm, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.dc, self.frequency, self.inorm, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.dc, self.frequency, self.inorm, self.norm, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_Izcos); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_57753464);
    __Pyx_GIVEREF(__pyx_int_57753464);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_57753464)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, None), state
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Izcos); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_57753464);
    __Pyx_GIVEREF(__pyx_int_57753464);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_57753464)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_5Izcos_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_5Izcos_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_5Izcos_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_5Izcos_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Izcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Izcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3520
 *         self.inorm = 1.0 / self.norm
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 */

static PyObject *__pyx_pw_8pysndlib_10generators_379make_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_f_8pysndlib_10generators_make_izcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_izcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_izcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":3524
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 *     """
 *     return Izcos(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm =0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3524, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 3524, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3520
 *         self.inorm = 1.0 / self.norm
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_379make_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_378make_izcos, "\n    creates an izcos generator that produces a sum of sines scaled by In(r).\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_379make_izcos = {"make_izcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_379make_izcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_378make_izcos};
static PyObject *__pyx_pw_8pysndlib_10generators_379make_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_izcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3520, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3520, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_izcos") < 0)) __PYX_ERR(0, 3520, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_izcos", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3520, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_378make_izcos(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_378make_izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_izcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_izcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_izcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3520, __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("pysndlib.generators.make_izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3526
 *     return Izcos(frequency, r)
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by In(r)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_381izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_izcos(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_izcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3533
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_izcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Izcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3533, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3526
 *     return Izcos(frequency, r)
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by In(r)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_381izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_380izcos, "\n    returns a sum of sines scaled by In(r)\n    :param gen: izcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_381izcos = {"izcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_381izcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_380izcos};
static PyObject *__pyx_pw_8pysndlib_10generators_381izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("izcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3526, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3526, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "izcos") < 0)) __PYX_ERR(0, 3526, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Izcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3526, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("izcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3526, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Izcos, 1, "gen", 0))) __PYX_ERR(0, 3526, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_380izcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_380izcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_izcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("izcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_izcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3526, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3526, __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("pysndlib.generators.izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3535
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_izcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an izcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_383is_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_izcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3542
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Izcos)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Izcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3535
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_izcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an izcos
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_383is_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_382is_izcos, "\n    returns True if gen is an izcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_383is_izcos = {"is_izcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_383is_izcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_382is_izcos};
static PyObject *__pyx_pw_8pysndlib_10generators_383is_izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_izcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3535, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_izcos") < 0)) __PYX_ERR(0, 3535, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_izcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3535, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_382is_izcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_382is_izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_izcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_izcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3535, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3535, __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("pysndlib.generators.is_izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3550
 * cdef class AdjustableSquareWave(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3550, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3550, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3550, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave___init__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3551
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3551, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3552
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor             # <<<<<<<<<<<<<<
 *         self.amplitude = amplitude
 *         self.sum = 0.0
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_duty_factor); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3552, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* "pysndlib/generators.pyx":3553
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude             # <<<<<<<<<<<<<<
 *         self.sum = 0.0
 *         self.p1 = clm.make_pulse_train(self.frequency, self.amplitude)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_amplitude); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3553, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* "pysndlib/generators.pyx":3554
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 *         self.sum = 0.0             # <<<<<<<<<<<<<<
 *         self.p1 = clm.make_pulse_train(self.frequency, self.amplitude)
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 */
  __pyx_v_self->sum = 0.0;

  /* "pysndlib/generators.pyx":3555
 *         self.amplitude = amplitude
 *         self.sum = 0.0
 *         self.p1 = clm.make_pulse_train(self.frequency, self.amplitude)             # <<<<<<<<<<<<<<
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_pulse_train); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_5};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_7, 2+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p1);
  __pyx_v_self->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3556
 *         self.sum = 0.0
 *         self.p1 = clm.make_pulse_train(self.frequency, self.amplitude)
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_make_pulse_train); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble((-__pyx_v_self->amplitude)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyFloat_FromDouble((__pyx_v_8pysndlib_10generators_TWO_PI * (1.0 - __pyx_v_self->duty_factor))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_7 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[4] = {__pyx_t_8, __pyx_t_4, __pyx_t_3, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 3+__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3556, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p2);
  __pyx_v_self->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3550
 * cdef class AdjustableSquareWave(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3558
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_20AdjustableSquareWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_20AdjustableSquareWave_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_a;
  double __pyx_v_b;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_pulse_train __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3558, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3558, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3559
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)             # <<<<<<<<<<<<<<
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 *         self.sum += a + b
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->p1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_pulse_train(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_a = __pyx_t_7;

  /* "pysndlib/generators.pyx":3560
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)             # <<<<<<<<<<<<<<
 *         self.sum += a + b
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->p2);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_pulse_train(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_b = __pyx_t_7;

  /* "pysndlib/generators.pyx":3561
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 *         self.sum += a + b             # <<<<<<<<<<<<<<
 * 
 *         return self.sum
 */
  __pyx_v_self->sum = (__pyx_v_self->sum + (__pyx_v_a + __pyx_v_b));

  /* "pysndlib/generators.pyx":3563
 *         self.sum += a + b
 * 
 *         return self.sum             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_self->sum;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3558
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 */

  /* 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("pysndlib.generators.AdjustableSquareWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3558, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3558, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3558, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3558, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2next(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_AdjustableSquareWave->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3558, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3558, __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("pysndlib.generators.AdjustableSquareWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3565
 *         return self.sum
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3565, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3565, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3565, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3565, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_4__call__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3566
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3566, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3565
 *         return self.sum
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3568
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.p1.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3570
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.p1.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p1), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3570, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3568
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.p1.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3572
 *         return self.p1.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.p1.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3573, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3574
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.p1.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->p1), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 3574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3572
 *         return self.p1.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.p1.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3576
 *         self.p1.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.p1.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3578
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.p1.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->p1), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3576
 *         self.p1.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.p1.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3580
 *         return self.p1.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.p1.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3581, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3582
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.p1.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->p1), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 3582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3580
 *         return self.p1.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.p1.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3584
 *         self.p1.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3586
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3586, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3584
 *         self.p1.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3588
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3589, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3590
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val             # <<<<<<<<<<<<<<
 *         self.p2.mus_phase = TWO_PI * (1.0 - self.duty_factor)
 * 
 */
  __pyx_v_self->duty_factor = __pyx_v_val;

  /* "pysndlib/generators.pyx":3591
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 *         self.p2.mus_phase = TWO_PI * (1.0 - self.duty_factor)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble((__pyx_v_8pysndlib_10generators_TWO_PI * (1.0 - __pyx_v_self->duty_factor))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->p2), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 3591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3588
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":720
 * # Note: modulating the duty factor will not work
 * cdef class AdjustableSquareWave(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 720, __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("pysndlib.generators.AdjustableSquareWave.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":721
 * cdef class AdjustableSquareWave(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 721, __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("pysndlib.generators.AdjustableSquareWave.duty_factor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 721, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.duty_factor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":722
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public cython.double sum
 *     cdef public clm.mus_any p1
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 722, __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("pysndlib.generators.AdjustableSquareWave.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 722, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":723
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any p1
 *     cdef public clm.mus_any p2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 723, __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("pysndlib.generators.AdjustableSquareWave.sum.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 723, __pyx_L1_error)
  __pyx_v_self->sum = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.sum.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":724
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum
 *     cdef public clm.mus_any p1             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any p2
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->p1);
  __pyx_r = ((PyObject *)__pyx_v_self->p1);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 724, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p1);
  __pyx_v_self->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.p1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_4__del__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p1_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p1);
  __pyx_v_self->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "pysndlib/generators.pxd":725
 *     cdef public cython.double sum
 *     cdef public clm.mus_any p1
 *     cdef public clm.mus_any p2             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->p2);
  __pyx_r = ((PyObject *)__pyx_v_self->p2);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 725, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p2);
  __pyx_v_self->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.p2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_4__del__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_2p2_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->p2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->p2);
  __pyx_v_self->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.p1, self.p2, self.sum)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->p1);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->p1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_self->p1))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->p2);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->p2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_self->p2))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.p1, self.p2, self.sum)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.p1, self.p2, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.p1 is not None or self.p2 is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.p1, self.p2, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.p1 is not None or self.p2 is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, None), state
 */
  /*else*/ {
    __pyx_t_7 = (((PyObject *)__pyx_v_self->p1) != Py_None);
    if (!__pyx_t_7) {
    } else {
      __pyx_t_6 = __pyx_t_7;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_7 = (((PyObject *)__pyx_v_self->p2) != Py_None);
    __pyx_t_6 = __pyx_t_7;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.p1 is not None or self.p2 is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.p1 is not None or self.p2 is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_AdjustableSquareW); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_117047762);
    __Pyx_GIVEREF(__pyx_int_117047762);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_117047762)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.p1 is not None or self.p2 is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, None), state
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_AdjustableSquareW); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_117047762);
    __Pyx_GIVEREF(__pyx_int_117047762);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_117047762)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_20AdjustableSquareWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSquareWave__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSquareWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3594
 * 
 * 
 * cpdef AdjustableSquareWave make_adjustable_square_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-square-wave generator that produces square-wave
 */

static PyObject *__pyx_pw_8pysndlib_10generators_385make_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_f_8pysndlib_10generators_make_adjustable_square_wave(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_square_wave *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_duty_factor = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_amplitude = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_square_wave", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_duty_factor = __pyx_optional_args->duty_factor;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_amplitude = __pyx_optional_args->amplitude;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3598
 *     creates an adjustable-square-wave generator that produces square-wave
 *     where the duty-factor sets the ratio of pulse duration to pulse period."""
 *     return AdjustableSquareWave(frequency, duty_factor, amplitude)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3598, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_duty_factor);
  __Pyx_GIVEREF(__pyx_v_duty_factor);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_duty_factor)) __PYX_ERR(0, 3598, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_amplitude);
  __Pyx_GIVEREF(__pyx_v_amplitude);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_amplitude)) __PYX_ERR(0, 3598, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3598, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3594
 * 
 * 
 * cpdef AdjustableSquareWave make_adjustable_square_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-square-wave generator that produces square-wave
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_385make_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_384make_adjustable_square_wave, "\n    creates an adjustable-square-wave generator that produces square-wave \n    where the duty-factor sets the ratio of pulse duration to pulse period.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_385make_adjustable_square_wave = {"make_adjustable_square_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_385make_adjustable_square_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_384make_adjustable_square_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_385make_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_adjustable_square_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3594, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3594, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3594, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_adjustable_square_wave") < 0)) __PYX_ERR(0, 3594, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_adjustable_square_wave", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3594, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_384make_adjustable_square_wave(__pyx_self, __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_384make_adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_square_wave __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_square_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.duty_factor = __pyx_v_duty_factor;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_adjustable_square_wave(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3594, __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("pysndlib.generators.make_adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3600
 *     return AdjustableSquareWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a square-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_387adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_square_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3609
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_adjustable_square_wave(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3609, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3600
 *     return AdjustableSquareWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a square-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_387adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_386adjustable_square_wave, "\n    returns a square-wave where the duty-factor sets the ratio of pulse duration to pulse period.\n    \n    :param gen: adjustable_square_wave gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_387adjustable_square_wave = {"adjustable_square_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_387adjustable_square_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_386adjustable_square_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_387adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("adjustable_square_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3600, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3600, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "adjustable_square_wave") < 0)) __PYX_ERR(0, 3600, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3600, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("adjustable_square_wave", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3600, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave, 1, "gen", 0))) __PYX_ERR(0, 3600, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_386adjustable_square_wave(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_386adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("adjustable_square_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_adjustable_square_wave(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3600, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3600, __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("pysndlib.generators.adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3611
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_square_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_square_wave
 */

static PyObject *__pyx_pw_8pysndlib_10generators_389is_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_square_wave(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3618
 *     :rtype: bool
 *     """
 *     return isinstance(gen, AdjustableSquareWave)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3611
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_square_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_square_wave
 */

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

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_389is_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_388is_adjustable_square_wave, "\n    returns True if gen is an adjustable_square_wave\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_389is_adjustable_square_wave = {"is_adjustable_square_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_389is_adjustable_square_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_388is_adjustable_square_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_389is_adjustable_square_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_adjustable_square_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3611, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_adjustable_square_wave") < 0)) __PYX_ERR(0, 3611, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_adjustable_square_wave", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3611, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_388is_adjustable_square_wave(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_388is_adjustable_square_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_adjustable_square_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_adjustable_square_wave(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3611, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3611, __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("pysndlib.generators.is_adjustable_square_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3624
 * 
 * cdef class AdjustableTriangleWave(CLMGenerator):
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3624, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3624, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3624, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3624, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3624, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave___init__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3625
 * cdef class AdjustableTriangleWave(CLMGenerator):
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3625, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3626
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor             # <<<<<<<<<<<<<<
 *         self.amplitude = amplitude
 *         self.gen = clm.make_triangle_wave(self.frequency)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_duty_factor); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3626, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* "pysndlib/generators.pyx":3627
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_triangle_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_amplitude); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3627, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* "pysndlib/generators.pyx":3628
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 *         self.gen = clm.make_triangle_wave(self.frequency)             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = - self.top
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_triangle_wave); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3629
 *         self.amplitude = amplitude
 *         self.gen = clm.make_triangle_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor             # <<<<<<<<<<<<<<
 *         self.mtop = - self.top
 *         self.scl = 0.0
 */
  __pyx_v_self->top = (1.0 - __pyx_v_self->duty_factor);

  /* "pysndlib/generators.pyx":3630
 *         self.gen = clm.make_triangle_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = - self.top             # <<<<<<<<<<<<<<
 *         self.scl = 0.0
 *         self.val = 0.0
 */
  __pyx_v_self->mtop = (-__pyx_v_self->top);

  /* "pysndlib/generators.pyx":3631
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = - self.top
 *         self.scl = 0.0             # <<<<<<<<<<<<<<
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 */
  __pyx_v_self->scl = 0.0;

  /* "pysndlib/generators.pyx":3632
 *         self.mtop = - self.top
 *         self.scl = 0.0
 *         self.val = 0.0             # <<<<<<<<<<<<<<
 *         if self.duty_factor != 0.0:
 *             self.scl = self.amplitude / self.duty_factor
 */
  __pyx_v_self->val = 0.0;

  /* "pysndlib/generators.pyx":3633
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / self.duty_factor
 * 
 */
  __pyx_t_7 = (__pyx_v_self->duty_factor != 0.0);
  if (__pyx_t_7) {

    /* "pysndlib/generators.pyx":3634
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 *             self.scl = self.amplitude / self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
    if (unlikely(__pyx_v_self->duty_factor == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3634, __pyx_L1_error)
    }
    __pyx_v_self->scl = (__pyx_v_self->amplitude / __pyx_v_self->duty_factor);

    /* "pysndlib/generators.pyx":3633
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / self.duty_factor
 * 
 */
  }

  /* "pysndlib/generators.pyx":3624
 * 
 * cdef class AdjustableTriangleWave(CLMGenerator):
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3636
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_22AdjustableTriangleWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_22AdjustableTriangleWave_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_triangle_wave __pyx_t_8;
  double __pyx_t_9;
  double __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3636, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3636, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3637
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.triangle_wave(self.gen, fm)             # <<<<<<<<<<<<<<
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_triangle_wave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3637, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->val = __pyx_t_7;

  /* "pysndlib/generators.pyx":3638
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_v_self->val;
  __pyx_t_9 = __pyx_v_self->top;
  __pyx_t_11 = (__pyx_t_7 < __pyx_t_9);
  if (__pyx_t_11) {
    __pyx_t_10 = __pyx_t_7;
  } else {
    __pyx_t_10 = __pyx_t_9;
  }
  __pyx_t_7 = __pyx_t_10;
  __pyx_t_10 = __pyx_v_self->mtop;
  __pyx_t_11 = (__pyx_t_7 > __pyx_t_10);
  if (__pyx_t_11) {
    __pyx_t_9 = __pyx_t_7;
  } else {
    __pyx_t_9 = __pyx_t_10;
  }
  __pyx_r = (__pyx_v_self->scl * (__pyx_v_self->val - __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3636
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

  /* 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("pysndlib.generators.AdjustableTriangleWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3636, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3636, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3636, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3636, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_2next(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_AdjustableTriangleWave->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3636, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3636, __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("pysndlib.generators.AdjustableTriangleWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3640
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3640, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3640, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3640, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3640, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4__call__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3641
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3641, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3640
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3643
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3645
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3643
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3647
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3648, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3649
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 3649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3647
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3651
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3653
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3653, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3651
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3655
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3656, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3657
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 3657, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3655
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3659
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3661
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3661, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3659
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3663
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3664, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((double)__pyx_v_val));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3665
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - val
 *         if val != 0.0:
 */
  __pyx_v_self->duty_factor = __pyx_v_val;

  /* "pysndlib/generators.pyx":3666
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 *         self.top = 1.0 - val             # <<<<<<<<<<<<<<
 *         if val != 0.0:
 *             self.scl = self.amplitude / val
 */
  __pyx_v_self->top = (1.0 - __pyx_v_val);

  /* "pysndlib/generators.pyx":3667
 *         self.duty_factor = val
 *         self.top = 1.0 - val
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / val
 * 
 */
  __pyx_t_1 = (__pyx_v_val != 0.0);
  if (__pyx_t_1) {

    /* "pysndlib/generators.pyx":3668
 *         self.top = 1.0 - val
 *         if val != 0.0:
 *             self.scl = self.amplitude / val             # <<<<<<<<<<<<<<
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):
 */
    if (unlikely(__pyx_v_val == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3668, __pyx_L1_error)
    }
    __pyx_v_self->scl = (__pyx_v_self->amplitude / __pyx_v_val);

    /* "pysndlib/generators.pyx":3667
 *         self.duty_factor = val
 *         self.top = 1.0 - val
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / val
 * 
 */
  }

  /* "pysndlib/generators.pyx":3663
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":733
 * #
 * cdef class AdjustableTriangleWave(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 733, __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("pysndlib.generators.AdjustableTriangleWave.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 733, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":734
 * cdef class AdjustableTriangleWave(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 734, __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("pysndlib.generators.AdjustableTriangleWave.duty_factor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 734, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.duty_factor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":735
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 735, __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("pysndlib.generators.AdjustableTriangleWave.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 735, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":736
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

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

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 736, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

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

/* "pysndlib/generators.pxd":737
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top             # <<<<<<<<<<<<<<
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

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

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 737, __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("pysndlib.generators.AdjustableTriangleWave.top.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 737, __pyx_L1_error)
  __pyx_v_self->top = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.top.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":738
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 *     cdef public cython.double mtop             # <<<<<<<<<<<<<<
 *     cdef public cython.double scl
 *     cdef public cython.double val
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 738, __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("pysndlib.generators.AdjustableTriangleWave.mtop.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 738, __pyx_L1_error)
  __pyx_v_self->mtop = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.mtop.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":739
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 *     cdef public cython.double scl             # <<<<<<<<<<<<<<
 *     cdef public cython.double val
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 739, __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("pysndlib.generators.AdjustableTriangleWave.scl.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 739, __pyx_L1_error)
  __pyx_v_self->scl = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.scl.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":740
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 *     cdef public cython.double val             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 740, __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("pysndlib.generators.AdjustableTriangleWave.val.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 740, __pyx_L1_error)
  __pyx_v_self->val = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.val.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 7, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  if (__pyx_t_9) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, None), state
 */
  /*else*/ {
    __pyx_t_9 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_9;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_AdjustableTriangl); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, None), state
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_AdjustableTriangl); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableTriangleWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableTriangleWave__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableTriangleWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3670
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-triangle-wave generator that produces a triangle-wave where the
 */

static PyObject *__pyx_pw_8pysndlib_10generators_391make_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_f_8pysndlib_10generators_make_adjustable_triangle_wave(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_triangle_wave *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_duty_factor = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_amplitude = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_triangle_wave", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_duty_factor = __pyx_optional_args->duty_factor;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_amplitude = __pyx_optional_args->amplitude;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3675
 *     duty-factor sets the ratio of pulse duration to pulse period.
 *     """
 *     return AdjustableTriangleWave(frequency, duty_factor, amplitude)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3675, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_duty_factor);
  __Pyx_GIVEREF(__pyx_v_duty_factor);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_duty_factor)) __PYX_ERR(0, 3675, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_amplitude);
  __Pyx_GIVEREF(__pyx_v_amplitude);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_amplitude)) __PYX_ERR(0, 3675, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3670
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-triangle-wave generator that produces a triangle-wave where the
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_391make_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_390make_adjustable_triangle_wave, "\n    creates an adjustable-triangle-wave generator that produces a triangle-wave where the \n    duty-factor sets the ratio of pulse duration to pulse period.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_391make_adjustable_triangle_wave = {"make_adjustable_triangle_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_391make_adjustable_triangle_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_390make_adjustable_triangle_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_391make_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_adjustable_triangle_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3670, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3670, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3670, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_adjustable_triangle_wave") < 0)) __PYX_ERR(0, 3670, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_adjustable_triangle_wave", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3670, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_390make_adjustable_triangle_wave(__pyx_self, __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_390make_adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_triangle_wave __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_triangle_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.duty_factor = __pyx_v_duty_factor;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_adjustable_triangle_wave(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3670, __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("pysndlib.generators.make_adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3677
 *     return AdjustableTriangleWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a triangle-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_393adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_triangle_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3685
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_adjustable_triangle_wave(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3685, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3677
 *     return AdjustableTriangleWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a triangle-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_393adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_392adjustable_triangle_wave, "\n    returns a triangle-wave where the duty-factor sets the ratio of pulse duration to pulse period.\n    \n    :param gen: adjustable_triangle_wave gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_393adjustable_triangle_wave = {"adjustable_triangle_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_393adjustable_triangle_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_392adjustable_triangle_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_393adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("adjustable_triangle_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3677, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3677, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "adjustable_triangle_wave") < 0)) __PYX_ERR(0, 3677, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3677, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("adjustable_triangle_wave", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3677, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave, 1, "gen", 0))) __PYX_ERR(0, 3677, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_392adjustable_triangle_wave(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_392adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("adjustable_triangle_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_adjustable_triangle_wave(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3677, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3677, __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("pysndlib.generators.adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3687
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_triangle_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_triangle_wave
 */

static PyObject *__pyx_pw_8pysndlib_10generators_395is_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_triangle_wave(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3694
 *     :rtype: bool
 *     """
 *     return isinstance(gen, AdjustableTriangleWave)             # <<<<<<<<<<<<<<
 * 
 * # --------------- adjustable-sawtooth-wave ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3687
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_triangle_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_triangle_wave
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_395is_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_394is_adjustable_triangle_wave, "\n    returns True if gen is an adjustable_triangle_wave\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_395is_adjustable_triangle_wave = {"is_adjustable_triangle_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_395is_adjustable_triangle_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_394is_adjustable_triangle_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_395is_adjustable_triangle_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_adjustable_triangle_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3687, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_adjustable_triangle_wave") < 0)) __PYX_ERR(0, 3687, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_adjustable_triangle_wave", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3687, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_394is_adjustable_triangle_wave(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_394is_adjustable_triangle_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_adjustable_triangle_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_adjustable_triangle_wave(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3687, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3687, __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("pysndlib.generators.is_adjustable_triangle_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3699
 * cdef class AdjustableSawtoothWave(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3699, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3699, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3699, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3699, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3699, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave___init__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3700
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3700, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3701
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor             # <<<<<<<<<<<<<<
 *         self.amplitude = amplitude
 *         self.gen = clm.make_sawtooth_wave(self.frequency)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_duty_factor); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3701, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* "pysndlib/generators.pyx":3702
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_sawtooth_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_amplitude); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3702, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* "pysndlib/generators.pyx":3703
 *         self.duty_factor = duty_factor
 *         self.amplitude = amplitude
 *         self.gen = clm.make_sawtooth_wave(self.frequency)             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0
 */
  __pyx_t_2 = ((PyObject *)__pyx_f_8pysndlib_3clm_make_sawtooth_wave(__pyx_v_self->frequency, 0, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3704
 *         self.amplitude = amplitude
 *         self.gen = clm.make_sawtooth_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor             # <<<<<<<<<<<<<<
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0
 */
  __pyx_v_self->top = (1.0 - __pyx_v_self->duty_factor);

  /* "pysndlib/generators.pyx":3705
 *         self.gen = clm.make_sawtooth_wave(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0             # <<<<<<<<<<<<<<
 *         self.scl = 0.0
 *         self.val = 0.0
 */
  __pyx_v_self->mtop = (__pyx_v_self->duty_factor - 1.0);

  /* "pysndlib/generators.pyx":3706
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0             # <<<<<<<<<<<<<<
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 */
  __pyx_v_self->scl = 0.0;

  /* "pysndlib/generators.pyx":3707
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0
 *         self.val = 0.0             # <<<<<<<<<<<<<<
 *         if self.duty_factor != 0.0:
 *             self.scl = self.amplitude / self.duty_factor
 */
  __pyx_v_self->val = 0.0;

  /* "pysndlib/generators.pyx":3708
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / self.duty_factor
 * 
 */
  __pyx_t_3 = (__pyx_v_self->duty_factor != 0.0);
  if (__pyx_t_3) {

    /* "pysndlib/generators.pyx":3709
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 *             self.scl = self.amplitude / self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
    if (unlikely(__pyx_v_self->duty_factor == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3709, __pyx_L1_error)
    }
    __pyx_v_self->scl = (__pyx_v_self->amplitude / __pyx_v_self->duty_factor);

    /* "pysndlib/generators.pyx":3708
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / self.duty_factor
 * 
 */
  }

  /* "pysndlib/generators.pyx":3699
 * cdef class AdjustableSawtoothWave(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3711
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_22AdjustableSawtoothWave_next(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_22AdjustableSawtoothWave_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_sawtooth_wave __pyx_t_8;
  double __pyx_t_9;
  double __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3711, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3711, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3712
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.sawtooth_wave(self.gen, fm)             # <<<<<<<<<<<<<<
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_sawtooth_wave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->val = __pyx_t_7;

  /* "pysndlib/generators.pyx":3713
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_v_self->val;
  __pyx_t_9 = __pyx_v_self->top;
  __pyx_t_11 = (__pyx_t_7 < __pyx_t_9);
  if (__pyx_t_11) {
    __pyx_t_10 = __pyx_t_7;
  } else {
    __pyx_t_10 = __pyx_t_9;
  }
  __pyx_t_7 = __pyx_t_10;
  __pyx_t_10 = __pyx_v_self->mtop;
  __pyx_t_11 = (__pyx_t_7 > __pyx_t_10);
  if (__pyx_t_11) {
    __pyx_t_9 = __pyx_t_7;
  } else {
    __pyx_t_9 = __pyx_t_10;
  }
  __pyx_r = (__pyx_v_self->scl * (__pyx_v_self->val - __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3711
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

  /* 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("pysndlib.generators.AdjustableSawtoothWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3711, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3711, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3711, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3711, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_2next(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_AdjustableSawtoothWave->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3711, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3711, __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("pysndlib.generators.AdjustableSawtoothWave.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3715
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3715, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3715, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3715, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3715, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4__call__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3716
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3716, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3716, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3715
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3718
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3720
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3718
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3722
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3723, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3724
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 3724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3722
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3726
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3728
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3726
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3730
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3731, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3732
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3732, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 3732, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3730
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3734
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3736
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3736, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3734
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3738
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3739, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3740
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 */
  __pyx_v_self->duty_factor = __pyx_v_val;

  /* "pysndlib/generators.pyx":3741
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 *         self.top = 1.0 - val             # <<<<<<<<<<<<<<
 *         self.mtop = val - 1.0
 *         if val != 0.0:
 */
  __pyx_v_self->top = (1.0 - __pyx_v_val);

  /* "pysndlib/generators.pyx":3742
 *         self.duty_factor = val
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0             # <<<<<<<<<<<<<<
 *         if val != 0.0:
 *             self.scl = self.amplitude / val
 */
  __pyx_v_self->mtop = (__pyx_v_val - 1.0);

  /* "pysndlib/generators.pyx":3743
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / val
 * 
 */
  __pyx_t_1 = (__pyx_v_val != 0.0);
  if (__pyx_t_1) {

    /* "pysndlib/generators.pyx":3744
 *         self.mtop = val - 1.0
 *         if val != 0.0:
 *             self.scl = self.amplitude / val             # <<<<<<<<<<<<<<
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):
 */
    if (unlikely(__pyx_v_val == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3744, __pyx_L1_error)
    }
    __pyx_v_self->scl = (__pyx_v_self->amplitude / __pyx_v_val);

    /* "pysndlib/generators.pyx":3743
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = self.amplitude / val
 * 
 */
  }

  /* "pysndlib/generators.pyx":3738
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":749
 * 
 * cdef class AdjustableSawtoothWave(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 749, __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("pysndlib.generators.AdjustableSawtoothWave.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 749, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":750
 * cdef class AdjustableSawtoothWave(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 750, __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("pysndlib.generators.AdjustableSawtoothWave.duty_factor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 750, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.duty_factor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":751
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 751, __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("pysndlib.generators.AdjustableSawtoothWave.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 751, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":752
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 752, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":753
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top             # <<<<<<<<<<<<<<
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 753, __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("pysndlib.generators.AdjustableSawtoothWave.top.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 753, __pyx_L1_error)
  __pyx_v_self->top = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.top.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":754
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 *     cdef public cython.double mtop             # <<<<<<<<<<<<<<
 *     cdef public cython.double scl
 *     cdef public cython.double val
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 754, __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("pysndlib.generators.AdjustableSawtoothWave.mtop.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 754, __pyx_L1_error)
  __pyx_v_self->mtop = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.mtop.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":755
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 *     cdef public cython.double scl             # <<<<<<<<<<<<<<
 *     cdef public cython.double val
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 755, __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("pysndlib.generators.AdjustableSawtoothWave.scl.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 755, __pyx_L1_error)
  __pyx_v_self->scl = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.scl.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":756
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 *     cdef public cython.double val             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 756, __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("pysndlib.generators.AdjustableSawtoothWave.val.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error)
  __pyx_v_self->val = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.val.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 7, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  if (__pyx_t_9) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, None), state
 */
  /*else*/ {
    __pyx_t_9 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_9;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_AdjustableSawtoot); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, None), state
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_AdjustableSawtoot); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_22AdjustableSawtoothWave_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSawtoothWave__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableSawtoothWave.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3746
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_397make_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_f_8pysndlib_10generators_make_adjustable_sawtooth_wave(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_sawtooth_wave *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_duty_factor = ((PyObject *)__pyx_float__5);
  PyObject *__pyx_v_amplitude = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_sawtooth_wave", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_duty_factor = __pyx_optional_args->duty_factor;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_amplitude = __pyx_optional_args->amplitude;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3750
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 *     """
 *     return AdjustableSawtoothWave(frequency, duty_factor, amplitude)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3750, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_duty_factor);
  __Pyx_GIVEREF(__pyx_v_duty_factor);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_duty_factor)) __PYX_ERR(0, 3750, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_amplitude);
  __Pyx_GIVEREF(__pyx_v_amplitude);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_amplitude)) __PYX_ERR(0, 3750, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3746
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_397make_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_396make_adjustable_sawtooth_wave, "\n    creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_397make_adjustable_sawtooth_wave = {"make_adjustable_sawtooth_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_397make_adjustable_sawtooth_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_396make_adjustable_sawtooth_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_397make_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_adjustable_sawtooth_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,&__pyx_n_s_amplitude,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3746, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_adjustable_sawtooth_wave") < 0)) __PYX_ERR(0, 3746, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_adjustable_sawtooth_wave", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3746, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_396make_adjustable_sawtooth_wave(__pyx_self, __pyx_v_frequency, __pyx_v_duty_factor, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_396make_adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_sawtooth_wave __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_sawtooth_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.duty_factor = __pyx_v_duty_factor;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_adjustable_sawtooth_wave(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3746, __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("pysndlib.generators.make_adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3752
 *     return AdjustableSawtoothWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_399adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_sawtooth_wave(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3760
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3760, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3752
 *     return AdjustableSawtoothWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_399adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_398adjustable_sawtooth_wave, "\n    returns a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.\n        \n    :param gen: adjustable_sawtooth_wave gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_399adjustable_sawtooth_wave = {"adjustable_sawtooth_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_399adjustable_sawtooth_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_398adjustable_sawtooth_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_399adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("adjustable_sawtooth_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3752, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3752, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "adjustable_sawtooth_wave") < 0)) __PYX_ERR(0, 3752, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3752, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("adjustable_sawtooth_wave", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3752, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave, 1, "gen", 0))) __PYX_ERR(0, 3752, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_398adjustable_sawtooth_wave(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_398adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("adjustable_sawtooth_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_adjustable_sawtooth_wave(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3752, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3752, __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("pysndlib.generators.adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3762
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_sawtooth_wave
 */

static PyObject *__pyx_pw_8pysndlib_10generators_401is_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_sawtooth_wave(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3769
 *     :rtype: bool
 *     """
 *     return isinstance(gen, AdjustableSawtoothWave)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3762
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_sawtooth_wave
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_401is_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_400is_adjustable_sawtooth_wave, "\n    returns True if gen is an adjustable_sawtooth_wave\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_401is_adjustable_sawtooth_wave = {"is_adjustable_sawtooth_wave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_401is_adjustable_sawtooth_wave, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_400is_adjustable_sawtooth_wave};
static PyObject *__pyx_pw_8pysndlib_10generators_401is_adjustable_sawtooth_wave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_adjustable_sawtooth_wave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3762, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_adjustable_sawtooth_wave") < 0)) __PYX_ERR(0, 3762, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_adjustable_sawtooth_wave", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3762, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_400is_adjustable_sawtooth_wave(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_400is_adjustable_sawtooth_wave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_adjustable_sawtooth_wave", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_adjustable_sawtooth_wave(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3762, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3762, __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("pysndlib.generators.is_adjustable_sawtooth_wave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3777
 * cdef class AdjustableOscil(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3777, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3777, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3777, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3777, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil___init__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), __pyx_v_frequency, __pyx_v_duty_factor);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil___init__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3778
 * 
 *     def __init__(self, frequency, duty_factor=.5):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.duty_factor = duty_factor
 *         self.gen = clm.make_oscil(self.frequency)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3778, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3779
 *     def __init__(self, frequency, duty_factor=.5):
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_oscil(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_duty_factor); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3779, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* "pysndlib/generators.pyx":3780
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 *         self.gen = clm.make_oscil(self.frequency)             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3780, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3781
 *         self.duty_factor = duty_factor
 *         self.gen = clm.make_oscil(self.frequency)
 *         self.top = 1.0 - self.duty_factor             # <<<<<<<<<<<<<<
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0
 */
  __pyx_v_self->top = (1.0 - __pyx_v_self->duty_factor);

  /* "pysndlib/generators.pyx":3782
 *         self.gen = clm.make_oscil(self.frequency)
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0             # <<<<<<<<<<<<<<
 *         self.scl = 0.0
 *         self.val = 0.0
 */
  __pyx_v_self->mtop = (__pyx_v_self->duty_factor - 1.0);

  /* "pysndlib/generators.pyx":3783
 *         self.top = 1.0 - self.duty_factor
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0             # <<<<<<<<<<<<<<
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 */
  __pyx_v_self->scl = 0.0;

  /* "pysndlib/generators.pyx":3784
 *         self.mtop = self.duty_factor - 1.0
 *         self.scl = 0.0
 *         self.val = 0.0             # <<<<<<<<<<<<<<
 *         if self.duty_factor != 0.0:
 *             self.scl = 1. / self.duty_factor
 */
  __pyx_v_self->val = 0.0;

  /* "pysndlib/generators.pyx":3785
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = 1. / self.duty_factor
 * 
 */
  __pyx_t_7 = (__pyx_v_self->duty_factor != 0.0);
  if (__pyx_t_7) {

    /* "pysndlib/generators.pyx":3786
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:
 *             self.scl = 1. / self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
    if (unlikely(__pyx_v_self->duty_factor == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3786, __pyx_L1_error)
    }
    __pyx_v_self->scl = (1. / __pyx_v_self->duty_factor);

    /* "pysndlib/generators.pyx":3785
 *         self.scl = 0.0
 *         self.val = 0.0
 *         if self.duty_factor != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = 1. / self.duty_factor
 * 
 */
  }

  /* "pysndlib/generators.pyx":3777
 * cdef class AdjustableOscil(CLMGenerator):
 * 
 *     def __init__(self, frequency, duty_factor=.5):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.duty_factor = duty_factor
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3788
 *             self.scl = 1. / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_15AdjustableOscil_next(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_15AdjustableOscil_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_8;
  double __pyx_t_9;
  double __pyx_t_10;
  int __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3788, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3788, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3788, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3789
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.oscil(self.gen, fm)             # <<<<<<<<<<<<<<
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->val = __pyx_t_7;

  /* "pysndlib/generators.pyx":3790
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_7 = __pyx_v_self->val;
  __pyx_t_9 = __pyx_v_self->top;
  __pyx_t_11 = (__pyx_t_7 < __pyx_t_9);
  if (__pyx_t_11) {
    __pyx_t_10 = __pyx_t_7;
  } else {
    __pyx_t_10 = __pyx_t_9;
  }
  __pyx_t_7 = __pyx_t_10;
  __pyx_t_10 = __pyx_v_self->mtop;
  __pyx_t_11 = (__pyx_t_7 > __pyx_t_10);
  if (__pyx_t_11) {
    __pyx_t_9 = __pyx_t_7;
  } else {
    __pyx_t_9 = __pyx_t_10;
  }
  __pyx_r = (__pyx_v_self->scl * (__pyx_v_self->val - __pyx_t_9));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3788
 *             self.scl = 1. / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */

  /* 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("pysndlib.generators.AdjustableOscil.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15AdjustableOscil_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3788, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3788, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3788, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3788, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_2next(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_2next(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_AdjustableOscil->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3788, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3788, __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("pysndlib.generators.AdjustableOscil.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3792
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3792, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3792, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3792, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3792, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_4__call__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_4__call__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3793
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3793, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3792
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3795
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3797
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3795
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.gen.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3799
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3800, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3801
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_phase, __pyx_t_1) < 0) __PYX_ERR(0, 3801, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3799
 *         return self.gen.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.mus_phase = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3803
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3805
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3803
 *         self.gen.mus_phase = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.gen.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3807
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3808, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3809
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 3809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3807
 *         return self.gen.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.gen.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3811
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3813
 *     @property
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor             # <<<<<<<<<<<<<<
 * 
 *     @mus_scaler.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3811
 *         self.gen.mus_frequency = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_scaler(self) -> cython.double:
 *         return self.duty_factor
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_scaler.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3815
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3816, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3817
 *     @mus_scaler.setter
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val             # <<<<<<<<<<<<<<
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 */
  __pyx_v_self->duty_factor = __pyx_v_val;

  /* "pysndlib/generators.pyx":3818
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 *         self.top = 1.0 - val             # <<<<<<<<<<<<<<
 *         self.mtop = val - 1.0
 *         if val != 0.0:
 */
  __pyx_v_self->top = (1.0 - __pyx_v_val);

  /* "pysndlib/generators.pyx":3819
 *         self.duty_factor = val
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0             # <<<<<<<<<<<<<<
 *         if val != 0.0:
 *             self.scl = 1. / val
 */
  __pyx_v_self->mtop = (__pyx_v_val - 1.0);

  /* "pysndlib/generators.pyx":3820
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = 1. / val
 * 
 */
  __pyx_t_1 = (__pyx_v_val != 0.0);
  if (__pyx_t_1) {

    /* "pysndlib/generators.pyx":3821
 *         self.mtop = val - 1.0
 *         if val != 0.0:
 *             self.scl = 1. / val             # <<<<<<<<<<<<<<
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):
 */
    if (unlikely(__pyx_v_val == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float division");
      __PYX_ERR(0, 3821, __pyx_L1_error)
    }
    __pyx_v_self->scl = (1. / __pyx_v_val);

    /* "pysndlib/generators.pyx":3820
 *         self.top = 1.0 - val
 *         self.mtop = val - 1.0
 *         if val != 0.0:             # <<<<<<<<<<<<<<
 *             self.scl = 1. / val
 * 
 */
  }

  /* "pysndlib/generators.pyx":3815
 *         return self.duty_factor
 * 
 *     @mus_scaler.setter             # <<<<<<<<<<<<<<
 *     def mus_scaler(self, val: cython.double):
 *         self.duty_factor = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mus_scaler.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":764
 * 
 * cdef class AdjustableOscil(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 764, __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("pysndlib.generators.AdjustableOscil.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 764, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":765
 * cdef class AdjustableOscil(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 765, __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("pysndlib.generators.AdjustableOscil.duty_factor.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_11duty_factor_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 765, __pyx_L1_error)
  __pyx_v_self->duty_factor = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.duty_factor.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":766
 *     cdef public cython.double frequency
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 766, __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("pysndlib.generators.AdjustableOscil.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 766, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":767
 *     cdef public cython.double duty_factor
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 767, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":768
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top             # <<<<<<<<<<<<<<
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 768, __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("pysndlib.generators.AdjustableOscil.top.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3top_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 768, __pyx_L1_error)
  __pyx_v_self->top = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.top.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":769
 *     cdef public clm.mus_any gen
 *     cdef public cython.double top
 *     cdef public cython.double mtop             # <<<<<<<<<<<<<<
 *     cdef public cython.double scl
 *     cdef public cython.double val
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 769, __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("pysndlib.generators.AdjustableOscil.mtop.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_4mtop_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 769, __pyx_L1_error)
  __pyx_v_self->mtop = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.mtop.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":770
 *     cdef public cython.double top
 *     cdef public cython.double mtop
 *     cdef public cython.double scl             # <<<<<<<<<<<<<<
 *     cdef public cython.double val
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 770, __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("pysndlib.generators.AdjustableOscil.scl.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3scl_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 770, __pyx_L1_error)
  __pyx_v_self->scl = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.scl.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":771
 *     cdef public cython.double mtop
 *     cdef public cython.double scl
 *     cdef public cython.double val             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val___get__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val___get__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 771, __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("pysndlib.generators.AdjustableOscil.val.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val_2__set__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_15AdjustableOscil_3val_2__set__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 771, __pyx_L1_error)
  __pyx_v_self->val = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.val.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->duty_factor); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->mtop); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->scl); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->top); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->val); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyTuple_New(8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 3, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 7, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_8 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_v__dict = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_9 = (__pyx_v__dict != Py_None);
  if (__pyx_t_9) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_7));
    __pyx_t_7 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.duty_factor, self.frequency, self.gen, self.mtop, self.scl, self.top, self.val)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, None), state
 */
  /*else*/ {
    __pyx_t_9 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_9;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_AdjustableOscil); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, None), state
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_AdjustableOscil); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246568357);
    __Pyx_GIVEREF(__pyx_int_246568357);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_int_246568357)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_15AdjustableOscil_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_15AdjustableOscil_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableOscil__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.AdjustableOscil.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3823
 *             self.scl = 1. / val
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_403make_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_f_8pysndlib_10generators_make_adjustable_oscil(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_oscil *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_duty_factor = ((PyObject *)__pyx_float__5);
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_oscil", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_duty_factor = __pyx_optional_args->duty_factor;
      }
    }
  }

  /* "pysndlib/generators.pyx":3827
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 *     """
 *     return AdjustableOscil(frequency, duty_factor)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3827, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_duty_factor);
  __Pyx_GIVEREF(__pyx_v_duty_factor);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_duty_factor)) __PYX_ERR(0, 3827, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableOscil), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3823
 *             self.scl = 1. / val
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_403make_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_402make_adjustable_oscil, "\n    creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_403make_adjustable_oscil = {"make_adjustable_oscil", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_403make_adjustable_oscil, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_402make_adjustable_oscil};
static PyObject *__pyx_pw_8pysndlib_10generators_403make_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_duty_factor = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_adjustable_oscil (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_duty_factor,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float__5));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3823, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_duty_factor);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3823, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_adjustable_oscil") < 0)) __PYX_ERR(0, 3823, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_duty_factor = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_adjustable_oscil", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 3823, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_402make_adjustable_oscil(__pyx_self, __pyx_v_frequency, __pyx_v_duty_factor);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_402make_adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_duty_factor) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_adjustable_oscil __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_adjustable_oscil", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.duty_factor = __pyx_v_duty_factor;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_adjustable_oscil(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3823, __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("pysndlib.generators.make_adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3829
 *     return AdjustableOscil(frequency, duty_factor)
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_405adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_adjustable_oscil(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3837
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_adjustable_oscil(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableOscil *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3837, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3829
 *     return AdjustableOscil(frequency, duty_factor)
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_405adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_404adjustable_oscil, "\n    returns a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.\n            \n    :param gen: adjustable_oscil gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_405adjustable_oscil = {"adjustable_oscil", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_405adjustable_oscil, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_404adjustable_oscil};
static PyObject *__pyx_pw_8pysndlib_10generators_405adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("adjustable_oscil (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3829, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3829, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "adjustable_oscil") < 0)) __PYX_ERR(0, 3829, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3829, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("adjustable_oscil", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3829, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_AdjustableOscil, 1, "gen", 0))) __PYX_ERR(0, 3829, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_404adjustable_oscil(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_404adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("adjustable_oscil", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_adjustable_oscil(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3829, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3829, __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("pysndlib.generators.adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3839
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_oscil(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_oscil_wave
 */

static PyObject *__pyx_pw_8pysndlib_10generators_407is_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_adjustable_oscil(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3846
 *     :rtype: bool
 *     """
 *     return isinstance(gen, AdjustableOscil)             # <<<<<<<<<<<<<<
 * 
 * # --------------- make-table-lookup-with-env ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_AdjustableOscil); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3839
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_oscil(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_oscil_wave
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_407is_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_406is_adjustable_oscil, "\n    returns True if gen is an adjustable_oscil_wave\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_407is_adjustable_oscil = {"is_adjustable_oscil", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_407is_adjustable_oscil, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_406is_adjustable_oscil};
static PyObject *__pyx_pw_8pysndlib_10generators_407is_adjustable_oscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_adjustable_oscil (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3839, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_adjustable_oscil") < 0)) __PYX_ERR(0, 3839, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_adjustable_oscil", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3839, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_406is_adjustable_oscil(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_406is_adjustable_oscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_adjustable_oscil", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_adjustable_oscil(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3839, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3839, __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("pysndlib.generators.is_adjustable_oscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3850
 * # --------------- make-table-lookup-with-env ---------------- #
 * 
 * cpdef make_table_lookup_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a table lookup generator from an envelope
 */

static PyObject *__pyx_pw_8pysndlib_10generators_409make_table_lookup_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_make_table_lookup_with_env(PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env *__pyx_optional_args) {
  PyObject *__pyx_v_size = __pyx_k__18;
  PyObject *__pyx_v_ve = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_table_lookup_with_env", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_size = __pyx_optional_args->size;
    }
  }

  /* "pysndlib/generators.pyx":3854
 *     creates a table lookup generator from an envelope
 *     """
 *     ve = np.zeros(size)             # <<<<<<<<<<<<<<
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3854, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_size};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_ve = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3855
 *     """
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)             # <<<<<<<<<<<<<<
 *     for i in range(size):
 *         ve[i] = clm.env(e)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_clm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_make_env); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pulse_env);
  __Pyx_GIVEREF(__pyx_v_pulse_env);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pulse_env)) __PYX_ERR(0, 3855, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_length, __pyx_v_size) < 0) __PYX_ERR(0, 3855, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_e = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "pysndlib/generators.pyx":3856
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):             # <<<<<<<<<<<<<<
 *         ve[i] = clm.env(e)
 *     return clm.make_table_lookup(frequency, 0.0, ve, size)
 */
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3856, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 3856, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 3856, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 3856, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 3856, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3856, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_7(__pyx_t_2);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3856, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "pysndlib/generators.pyx":3857
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):
 *         ve[i] = clm.env(e)             # <<<<<<<<<<<<<<
 *     return clm.make_table_lookup(frequency, 0.0, ve, size)
 * 
 */
    if (!(likely(((__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3857, __pyx_L1_error)
    __pyx_t_8 = __pyx_f_8pysndlib_3clm_env(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_e), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3857, __pyx_L1_error)
    __pyx_t_5 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3857, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely((PyObject_SetItem(__pyx_v_ve, __pyx_v_i, __pyx_t_5) < 0))) __PYX_ERR(0, 3857, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pysndlib/generators.pyx":3856
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):             # <<<<<<<<<<<<<<
 *         ve[i] = clm.env(e)
 *     return clm.make_table_lookup(frequency, 0.0, ve, size)
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3858
 *     for i in range(size):
 *         ve[i] = clm.env(e)
 *     return clm.make_table_lookup(frequency, 0.0, ve, size)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_clm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_make_table_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3858, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_v_frequency, __pyx_float_0_0, __pyx_v_ve, __pyx_v_size};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3850
 * # --------------- make-table-lookup-with-env ---------------- #
 * 
 * cpdef make_table_lookup_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a table lookup generator from an envelope
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.make_table_lookup_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ve);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_409make_table_lookup_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_408make_table_lookup_with_env, "\n    creates a table lookup generator from an envelope\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_409make_table_lookup_with_env = {"make_table_lookup_with_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_409make_table_lookup_with_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_408make_table_lookup_with_env};
static PyObject *__pyx_pw_8pysndlib_10generators_409make_table_lookup_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_pulse_env = 0;
  PyObject *__pyx_v_size = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_table_lookup_with_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_pulse_env,&__pyx_n_s_size,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__18);
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3850, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pulse_env)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3850, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("make_table_lookup_with_env", 0, 2, 3, 1); __PYX_ERR(0, 3850, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_size);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3850, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_table_lookup_with_env") < 0)) __PYX_ERR(0, 3850, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_pulse_env = values[1];
    __pyx_v_size = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_table_lookup_with_env", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 3850, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_table_lookup_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_408make_table_lookup_with_env(__pyx_self, __pyx_v_frequency, __pyx_v_pulse_env, __pyx_v_size);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_408make_table_lookup_with_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, PyObject *__pyx_v_size) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_table_lookup_with_env", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.size = __pyx_v_size;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_make_table_lookup_with_env(__pyx_v_frequency, __pyx_v_pulse_env, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3850, __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("pysndlib.generators.make_table_lookup_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3863
 * # --------------- make-wave-train-with-env ---------------- #
 * 
 * cpdef make_wave_train_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a wave train generator from an envelope
 */

static PyObject *__pyx_pw_8pysndlib_10generators_411make_wave_train_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_make_wave_train_with_env(PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env *__pyx_optional_args) {
  PyObject *__pyx_v_size = __pyx_k__19;
  PyObject *__pyx_v_ve = NULL;
  PyObject *__pyx_v_e = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *(*__pyx_t_7)(PyObject *);
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_wave_train_with_env", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_size = __pyx_optional_args->size;
    }
  }

  /* "pysndlib/generators.pyx":3867
 *     creates a wave train generator from an envelope
 *     """
 *     ve = np.zeros(size)             # <<<<<<<<<<<<<<
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_size};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3867, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_ve = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3868
 *     """
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)             # <<<<<<<<<<<<<<
 *     for i in range(size):
 *         ve[i] = clm.env(e)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_clm); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_make_env); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_pulse_env);
  __Pyx_GIVEREF(__pyx_v_pulse_env);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pulse_env)) __PYX_ERR(0, 3868, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_length, __pyx_v_size) < 0) __PYX_ERR(0, 3868, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_e = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "pysndlib/generators.pyx":3869
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):             # <<<<<<<<<<<<<<
 *         ve[i] = clm.env(e)
 *     return clm.make_wave_train(frequency, 0.0, ve, size)
 */
  __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3869, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3869, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3869, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 3869, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 3869, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 3869, __pyx_L1_error)
          #endif
          if (__pyx_t_6 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(0, 3869, __pyx_L1_error)
        #else
        __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_7(__pyx_t_2);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3869, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5);
    __pyx_t_5 = 0;

    /* "pysndlib/generators.pyx":3870
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):
 *         ve[i] = clm.env(e)             # <<<<<<<<<<<<<<
 *     return clm.make_wave_train(frequency, 0.0, ve, size)
 * 
 */
    if (!(likely(((__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3870, __pyx_L1_error)
    __pyx_t_8 = __pyx_f_8pysndlib_3clm_env(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_e), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3870, __pyx_L1_error)
    __pyx_t_5 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3870, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely((PyObject_SetItem(__pyx_v_ve, __pyx_v_i, __pyx_t_5) < 0))) __PYX_ERR(0, 3870, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

    /* "pysndlib/generators.pyx":3869
 *     ve = np.zeros(size)
 *     e = clm.make_env(pulse_env, length=size)
 *     for i in range(size):             # <<<<<<<<<<<<<<
 *         ve[i] = clm.env(e)
 *     return clm.make_wave_train(frequency, 0.0, ve, size)
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3871
 *     for i in range(size):
 *         ve[i] = clm.env(e)
 *     return clm.make_wave_train(frequency, 0.0, ve, size)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_clm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_make_wave_train); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3871, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[5] = {__pyx_t_5, __pyx_v_frequency, __pyx_float_0_0, __pyx_v_ve, __pyx_v_size};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_4, 4+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3863
 * # --------------- make-wave-train-with-env ---------------- #
 * 
 * cpdef make_wave_train_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a wave train generator from an envelope
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.make_wave_train_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ve);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_411make_wave_train_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_410make_wave_train_with_env, "\n    creates a wave train generator from an envelope\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_411make_wave_train_with_env = {"make_wave_train_with_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_411make_wave_train_with_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_410make_wave_train_with_env};
static PyObject *__pyx_pw_8pysndlib_10generators_411make_wave_train_with_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_pulse_env = 0;
  PyObject *__pyx_v_size = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_wave_train_with_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_pulse_env,&__pyx_n_s_size,0};
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__19);
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3863, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pulse_env)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3863, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("make_wave_train_with_env", 0, 2, 3, 1); __PYX_ERR(0, 3863, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_size);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3863, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_wave_train_with_env") < 0)) __PYX_ERR(0, 3863, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_pulse_env = values[1];
    __pyx_v_size = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_wave_train_with_env", 0, 2, 3, __pyx_nargs); __PYX_ERR(0, 3863, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_wave_train_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_410make_wave_train_with_env(__pyx_self, __pyx_v_frequency, __pyx_v_pulse_env, __pyx_v_size);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_410make_wave_train_with_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_pulse_env, PyObject *__pyx_v_size) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_wave_train_with_env", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.size = __pyx_v_size;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_make_wave_train_with_env(__pyx_v_frequency, __pyx_v_pulse_env, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3863, __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("pysndlib.generators.make_wave_train_with_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3878
 * cdef class RoundInterp(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_amplitude = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3878, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3878, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3878, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3878, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3878, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp___init__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp___init__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":3879
 * 
 *     def __init__(self, frequency, n=1, amplitude=1.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.amplitude = amplitude
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3879, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3880
 *     def __init__(self, frequency, n=1, amplitude=1.0):
 *         self.frequency = frequency
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.amplitude = amplitude
 *         self.rnd = clm.make_rand_interp(self.frequency, self.amplitude)
 */
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3880, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":3881
 *         self.frequency = frequency
 *         self.n = n
 *         self.amplitude = amplitude             # <<<<<<<<<<<<<<
 *         self.rnd = clm.make_rand_interp(self.frequency, self.amplitude)
 *         self.flt = clm.make_moving_average(self.n)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_amplitude); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3881, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* "pysndlib/generators.pyx":3882
 *         self.n = n
 *         self.amplitude = amplitude
 *         self.rnd = clm.make_rand_interp(self.frequency, self.amplitude)             # <<<<<<<<<<<<<<
 *         self.flt = clm.make_moving_average(self.n)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_make_rand_interp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_2 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_2 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_4, __pyx_t_6};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_2, 2+__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3882, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->rnd);
  __Pyx_DECREF((PyObject *)__pyx_v_self->rnd);
  __pyx_v_self->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3883
 *         self.amplitude = amplitude
 *         self.rnd = clm.make_rand_interp(self.frequency, self.amplitude)
 *         self.flt = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_clm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_2 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_2 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3883, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3883, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_3);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->flt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->flt);
  __pyx_v_self->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3878
 * cdef class RoundInterp(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3886
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_11RoundInterp_next(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_11RoundInterp_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_rand_interp __pyx_t_8;
  double __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3886, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_11RoundInterp_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3886, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3886, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3886, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3887
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->flt);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = ((PyObject *)__pyx_v_self->rnd);
  __Pyx_INCREF(__pyx_t_2);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.sweep = __pyx_v_fm;
  __pyx_t_4 = __pyx_f_8pysndlib_3clm_rand_interp(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2), 0, &__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_9 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_t_7, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_9;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3886
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 */

  /* 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("pysndlib.generators.RoundInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11RoundInterp_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11RoundInterp_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3886, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3886, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3886, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3886, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_2next(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_2next(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_RoundInterp->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3886, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3886, __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("pysndlib.generators.RoundInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3889
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3889, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3889, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3889, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3889, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_4__call__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_4__call__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3890
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_RoundInterp *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3890, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3889
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3892
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.rnd.mus_phase
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3894
 *     @property
 *     def mus_phase(self) -> cython.double:
 *         return self.rnd.mus_phase             # <<<<<<<<<<<<<<
 * 
 *     @mus_phase.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->rnd), __pyx_n_s_mus_phase); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3892
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_phase(self) -> cython.double:
 *         return self.rnd.mus_phase
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_phase.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3896
 *         return self.rnd.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.rnd = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3897, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9mus_phase_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3898
 *     @mus_phase.setter
 *     def mus_phase(self, val: cython.double):
 *         self.gen.rnd = val             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_gen); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_rnd, __pyx_t_1) < 0) __PYX_ERR(0, 3898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":3896
 *         return self.rnd.mus_phase
 * 
 *     @mus_phase.setter             # <<<<<<<<<<<<<<
 *     def mus_phase(self, val: cython.double):
 *         self.gen.rnd = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_phase.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3900
 *         self.gen.rnd = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.rnd.mus_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":3902
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.rnd.mus_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->rnd), __pyx_n_s_mus_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3902, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3900
 *         self.gen.rnd = val
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.rnd.mus_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3904
 *         return self.rnd.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.rnd.mus_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3905, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);

  /* "pysndlib/generators.pyx":3906
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.rnd.mus_frequency = val             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_val); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->rnd), __pyx_n_s_mus_frequency, __pyx_t_1) < 0) __PYX_ERR(0, 3906, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3904
 *         return self.rnd.mus_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.rnd.mus_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":785
 * # --------------- round-interp ---------------- #
 * cdef class RoundInterp(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double amplitude
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 785, __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("pysndlib.generators.RoundInterp.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 785, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":786
 * cdef class RoundInterp(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any rnd
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_1n___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_1n___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 786, __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("pysndlib.generators.RoundInterp.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 786, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":787
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any rnd
 *     cdef public clm.mus_any flt
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 787, __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("pysndlib.generators.RoundInterp.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 787, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":788
 *     cdef public cython.int n
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any rnd             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any flt
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->rnd);
  __pyx_r = ((PyObject *)__pyx_v_self->rnd);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 788, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->rnd);
  __Pyx_DECREF((PyObject *)__pyx_v_self->rnd);
  __pyx_v_self->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.rnd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_4__del__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3rnd_4__del__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->rnd);
  __Pyx_DECREF((PyObject *)__pyx_v_self->rnd);
  __pyx_v_self->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":789
 *     cdef public cython.double amplitude
 *     cdef public clm.mus_any rnd
 *     cdef public clm.mus_any flt             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt___get__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_3flt___get__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->flt);
  __pyx_r = ((PyObject *)__pyx_v_self->flt);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_2__set__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_2__set__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 789, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->flt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->flt);
  __pyx_v_self->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.flt.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_4__del__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11RoundInterp_3flt_4__del__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->flt);
  __Pyx_DECREF((PyObject *)__pyx_v_self->flt);
  __pyx_v_self->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11RoundInterp_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11RoundInterp_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.flt, self.frequency, self.n, self.rnd)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->flt);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->flt);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->flt))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->rnd);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->rnd);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, ((PyObject *)__pyx_v_self->rnd))) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.flt, self.frequency, self.n, self.rnd)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_4 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v__dict = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.flt, self.frequency, self.n, self.rnd)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_5 = (__pyx_v__dict != Py_None);
  if (__pyx_t_5) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.flt is not None or self.rnd is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.flt, self.frequency, self.n, self.rnd)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.flt is not None or self.rnd is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, None), state
 */
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->flt) != Py_None);
    if (!__pyx_t_6) {
    } else {
      __pyx_t_5 = __pyx_t_6;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_6 = (((PyObject *)__pyx_v_self->rnd) != Py_None);
    __pyx_t_5 = __pyx_t_6;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_5;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.flt is not None or self.rnd is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.flt is not None or self.rnd is not None
 *     if use_setstate:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_RoundInterp); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_58026155);
    __Pyx_GIVEREF(__pyx_int_58026155);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_58026155)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.flt is not None or self.rnd is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, None), state
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_RoundInterp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_58026155);
    __Pyx_GIVEREF(__pyx_int_58026155);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_int_58026155)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11RoundInterp_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11RoundInterp_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11RoundInterp_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11RoundInterp_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11RoundInterp_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_RoundInterp__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.RoundInterp.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3909
 * 
 * 
 * cpdef RoundInterp make_round_interp(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_413make_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_f_8pysndlib_10generators_make_round_interp(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_round_interp *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_amplitude = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_round_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_amplitude = __pyx_optional_args->amplitude;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3913
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 *     """
 *     return RoundInterp(frequency, n, amplitude)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3913, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 3913, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_amplitude);
  __Pyx_GIVEREF(__pyx_v_amplitude);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_amplitude)) __PYX_ERR(0, 3913, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_RoundInterp), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3909
 * 
 * 
 * cpdef RoundInterp make_round_interp(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_413make_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_412make_round_interp, "\n    creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_413make_round_interp = {"make_round_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_413make_round_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_412make_round_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_413make_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_round_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_amplitude,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3909, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3909, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3909, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_round_interp") < 0)) __PYX_ERR(0, 3909, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_round_interp", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3909, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_412make_round_interp(__pyx_self, __pyx_v_frequency, __pyx_v_n, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_412make_round_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_round_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_round_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_round_interp(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3909, __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("pysndlib.generators.make_round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3915
 *     return RoundInterp(frequency, n, amplitude)
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_415round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_round_interp(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_round_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":3923
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_round_interp(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_RoundInterp *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3923, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3915
 *     return RoundInterp(frequency, n, amplitude)
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_415round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_414round_interp, "returns a rand-interp sequence low-pass filtered by a moving-average generator of length n.\n    \n            \n    :param gen: round_interp gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_415round_interp = {"round_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_415round_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_414round_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_415round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("round_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3915, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3915, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "round_interp") < 0)) __PYX_ERR(0, 3915, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3915, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("round_interp", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3915, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_RoundInterp, 1, "gen", 0))) __PYX_ERR(0, 3915, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_414round_interp(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_414round_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_round_interp __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("round_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_round_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3915, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3915, __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("pysndlib.generators.round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3925
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_round_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an round
 */

static PyObject *__pyx_pw_8pysndlib_10generators_417is_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_round_interp(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":3932
 *     :rtype: bool
 *     """
 *     return isinstance(gen, RoundInterp)             # <<<<<<<<<<<<<<
 * 
 * # #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_RoundInterp); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3925
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_round_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an round
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_417is_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_416is_round_interp, "\n    returns True if gen is an round\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_417is_round_interp = {"is_round_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_417is_round_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_416is_round_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_417is_round_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_round_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3925, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_round_interp") < 0)) __PYX_ERR(0, 3925, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_round_interp", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3925, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_416is_round_interp(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_416is_round_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_round_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_round_interp(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3925, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3925, __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("pysndlib.generators.is_round_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3938
 * 
 * # --------------- sine-env ---------------- #
 * cdef cython.double sin_env_fun(y):             # <<<<<<<<<<<<<<
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 */

static double __pyx_f_8pysndlib_10generators_sin_env_fun(PyObject *__pyx_v_y) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sin_env_fun", 1);

  /* "pysndlib/generators.pyx":3939
 * # --------------- sine-env ---------------- #
 * cdef cython.double sin_env_fun(y):
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double sine_env(e):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_PI); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_v_y, __pyx_float_0_5, 0.5, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_5};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_1, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_float_0_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3939, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3938
 * 
 * # --------------- sine-env ---------------- #
 * cdef cython.double sin_env_fun(y):             # <<<<<<<<<<<<<<
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 */

  /* 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("pysndlib.generators.sin_env_fun", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3941
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 * cpdef cython.double sine_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using sin function"""
 *     return clm.env_any(e, sin_env_fun)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_419sine_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_sine_env(PyObject *__pyx_v_e, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sine_env", 1);

  /* "pysndlib/generators.pyx":3943
 * cpdef cython.double sine_env(e):
 *     """connects envelope points using sin function"""
 *     return clm.env_any(e, sin_env_fun)             # <<<<<<<<<<<<<<
 * 
 * cdef cython.double square_env_fun(y):
 */
  if (!(likely(((__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3943, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(__pyx_f_8pysndlib_10generators_sin_env_fun); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_env_any(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_e), __pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3943, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3941
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 * cpdef cython.double sine_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using sin function"""
 *     return clm.env_any(e, sin_env_fun)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.sine_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_419sine_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_418sine_env, "connects envelope points using sin function");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_419sine_env = {"sine_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_419sine_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_418sine_env};
static PyObject *__pyx_pw_8pysndlib_10generators_419sine_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_e = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sine_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_e)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3941, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "sine_env") < 0)) __PYX_ERR(0, 3941, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_e = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("sine_env", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3941, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.sine_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_418sine_env(__pyx_self, __pyx_v_e);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_418sine_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sine_env", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_sine_env(__pyx_v_e, 0); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3941, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3941, __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("pysndlib.generators.sine_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3945
 *     return clm.env_any(e, sin_env_fun)
 * 
 * cdef cython.double square_env_fun(y):             # <<<<<<<<<<<<<<
 *     return y*y
 * 
 */

static double __pyx_f_8pysndlib_10generators_square_env_fun(PyObject *__pyx_v_y) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("square_env_fun", 1);

  /* "pysndlib/generators.pyx":3946
 * 
 * cdef cython.double square_env_fun(y):
 *     return y*y             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double square_env(e):
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_y, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3946, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3945
 *     return clm.env_any(e, sin_env_fun)
 * 
 * cdef cython.double square_env_fun(y):             # <<<<<<<<<<<<<<
 *     return y*y
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.square_env_fun", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3948
 *     return y*y
 * 
 * cpdef cython.double square_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using square wave function"""
 *     return clm.env_any(e, square_env_fun)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_421square_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_square_env(PyObject *__pyx_v_e, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("square_env", 1);

  /* "pysndlib/generators.pyx":3950
 * cpdef cython.double square_env(e):
 *     """connects envelope points using square wave function"""
 *     return clm.env_any(e, square_env_fun)             # <<<<<<<<<<<<<<
 * 
 * cdef cython.double blackman4_env_fun(y):
 */
  if (!(likely(((__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3950, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(__pyx_f_8pysndlib_10generators_square_env_fun); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_env_any(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_e), __pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3948
 *     return y*y
 * 
 * cpdef cython.double square_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using square wave function"""
 *     return clm.env_any(e, square_env_fun)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.square_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_421square_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_420square_env, "connects envelope points using square wave function");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_421square_env = {"square_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_421square_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_420square_env};
static PyObject *__pyx_pw_8pysndlib_10generators_421square_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_e = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("square_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_e)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3948, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "square_env") < 0)) __PYX_ERR(0, 3948, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_e = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("square_env", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3948, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.square_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_420square_env(__pyx_self, __pyx_v_e);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_420square_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("square_env", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_square_env(__pyx_v_e, 0); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3948, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3948, __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("pysndlib.generators.square_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3952
 *     return clm.env_any(e, square_env_fun)
 * 
 * cdef cython.double blackman4_env_fun(y):             # <<<<<<<<<<<<<<
 *     cx = math.cos(math.pi * y)
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 */

static double __pyx_f_8pysndlib_10generators_blackman4_env_fun(PyObject *__pyx_v_y) {
  PyObject *__pyx_v_cx = NULL;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("blackman4_env_fun", 1);

  /* "pysndlib/generators.pyx":3953
 * 
 * cdef cython.double blackman4_env_fun(y):
 *     cx = math.cos(math.pi * y)             # <<<<<<<<<<<<<<
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_math); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_math); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3953, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v_cx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3954
 * cdef cython.double blackman4_env_fun(y):
 *     cx = math.cos(math.pi * y)
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double blackman4_env(e):
 */
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_cx, __pyx_float_0_041194); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_0_20762, 0.20762, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_cx, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_0_375696, __pyx_t_1, 0.375696, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_cx, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_t_1, __pyx_float_0_29145, 0.29145, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_v_cx, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_0_084037, __pyx_t_1, 0.084037, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_6;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3952
 *     return clm.env_any(e, square_env_fun)
 * 
 * cdef cython.double blackman4_env_fun(y):             # <<<<<<<<<<<<<<
 *     cx = math.cos(math.pi * y)
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.blackman4_env_fun", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_cx);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3956
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 * 
 * cpdef cython.double blackman4_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using blackman function"""
 *     return clm.env_any(e, blackman4_env_fun)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_423blackman4_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_blackman4_env(PyObject *__pyx_v_e, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("blackman4_env", 1);

  /* "pysndlib/generators.pyx":3958
 * cpdef cython.double blackman4_env(e):
 *     """connects envelope points using blackman function"""
 *     return clm.env_any(e, blackman4_env_fun)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (!(likely(((__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3958, __pyx_L1_error)
  __pyx_t_1 = __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(__pyx_f_8pysndlib_10generators_blackman4_env_fun); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_env_any(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_e), __pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3956
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 * 
 * cpdef cython.double blackman4_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using blackman function"""
 *     return clm.env_any(e, blackman4_env_fun)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.blackman4_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_423blackman4_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_422blackman4_env, "connects envelope points using blackman function");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_423blackman4_env = {"blackman4_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_423blackman4_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_422blackman4_env};
static PyObject *__pyx_pw_8pysndlib_10generators_423blackman4_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_e = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("blackman4_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_e)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3956, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "blackman4_env") < 0)) __PYX_ERR(0, 3956, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_e = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("blackman4_env", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3956, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.blackman4_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_422blackman4_env(__pyx_self, __pyx_v_e);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_422blackman4_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("blackman4_env", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_blackman4_env(__pyx_v_e, 0); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3956, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3956, __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("pysndlib.generators.blackman4_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_425multi_expt_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_425multi_expt_env = {"multi_expt_env", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_425multi_expt_env, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_425multi_expt_env(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_e = 0;
  PyObject *__pyx_v_expts = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("multi_expt_env (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,&__pyx_n_s_expts,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_e)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3961, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_expts)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3961, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("multi_expt_env", 1, 2, 2, 1); __PYX_ERR(0, 3961, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "multi_expt_env") < 0)) __PYX_ERR(0, 3961, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_e = values[0];
    __pyx_v_expts = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("multi_expt_env", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 3961, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.multi_expt_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_424multi_expt_env(__pyx_self, __pyx_v_e, __pyx_v_expts);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3962
 * 
 * def multi_expt_env(e, expts):
 *     def fun(y):             # <<<<<<<<<<<<<<
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14multi_expt_env_1fun(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14multi_expt_env_1fun = {"fun", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14multi_expt_env_1fun, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14multi_expt_env_1fun(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_y = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("fun (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_y,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_y)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3962, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "fun") < 0)) __PYX_ERR(0, 3962, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_y = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("fun", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 3962, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.multi_expt_env.fun", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14multi_expt_env_fun(__pyx_self, __pyx_v_y);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14multi_expt_env_fun(PyObject *__pyx_self, PyObject *__pyx_v_y) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *__pyx_cur_scope;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *__pyx_outer_scope;
  PyObject *__pyx_v_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fun", 1);
  __pyx_outer_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *) __Pyx_CyFunction_GetClosure(__pyx_self);
  __pyx_cur_scope = __pyx_outer_scope;

  /* "pysndlib/generators.pyx":3963
 * def multi_expt_env(e, expts):
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]             # <<<<<<<<<<<<<<
 *         return ((b**y) - 1.0) / (b - 1.0)
 *     return clm.env_any(e, fun)
 */
  if (unlikely(!__pyx_cur_scope->__pyx_v_expts)) { __Pyx_RaiseClosureNameError("expts"); __PYX_ERR(0, 3963, __pyx_L1_error) }
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_channels); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_cur_scope->__pyx_v_e)) { __Pyx_RaiseClosureNameError("e"); __PYX_ERR(0, 3963, __pyx_L1_error) }
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_cur_scope->__pyx_v_e};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (unlikely(!__pyx_cur_scope->__pyx_v_expts)) { __Pyx_RaiseClosureNameError("expts"); __PYX_ERR(0, 3963, __pyx_L1_error) }
  __pyx_t_3 = __pyx_cur_scope->__pyx_v_expts;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Remainder(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_cur_scope->__pyx_v_expts, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_b = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3964
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)             # <<<<<<<<<<<<<<
 *     return clm.env_any(e, fun)
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_3 = PyNumber_Power(__pyx_v_b, __pyx_v_y, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_v_b, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3962
 * 
 * def multi_expt_env(e, expts):
 *     def fun(y):             # <<<<<<<<<<<<<<
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.multi_expt_env.fun", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */

static PyObject *__pyx_pf_8pysndlib_10generators_424multi_expt_env(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_e, PyObject *__pyx_v_expts) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *__pyx_cur_scope;
  PyObject *__pyx_v_fun = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("multi_expt_env", 0);
  __pyx_cur_scope = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 3961, __pyx_L1_error)
  } else {
    __Pyx_GOTREF((PyObject *)__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_v_e = __pyx_v_e;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_e);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_e);
  __pyx_cur_scope->__pyx_v_expts = __pyx_v_expts;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_expts);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_expts);

  /* "pysndlib/generators.pyx":3962
 * 
 * def multi_expt_env(e, expts):
 *     def fun(y):             # <<<<<<<<<<<<<<
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)
 */
  __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14multi_expt_env_1fun, 0, __pyx_n_s_multi_expt_env_locals_fun, ((PyObject*)__pyx_cur_scope), __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__21)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_fun = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":3965
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)
 *     return clm.env_any(e, fun)             # <<<<<<<<<<<<<<
 * 
 * # --------------- run-with-fm-and-pm ---------------- #
 */
  __Pyx_XDECREF(__pyx_r);
  if (!(likely(((__pyx_cur_scope->__pyx_v_e) == Py_None) || likely(__Pyx_TypeTest(__pyx_cur_scope->__pyx_v_e, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 3965, __pyx_L1_error)
  __pyx_t_1 = __pyx_cur_scope->__pyx_v_e;
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_env_any(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_v_fun, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3965, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3965, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.multi_expt_env", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_fun);
  __Pyx_DECREF((PyObject *)__pyx_cur_scope);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3972
 * cdef class Nchoosekcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.ratio = ratio
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_ratio = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_ratio,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3972, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_ratio);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3972, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3972, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 3972, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_ratio = values[1];
    __pyx_v_n = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 3972, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos___init__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), __pyx_v_frequency, __pyx_v_ratio, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos___init__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_ratio, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":3973
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.ratio = ratio
 *         self.n = n
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3973, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":3974
 *     def __init__(self, frequency, ratio=1.0, n=1):
 *         self.frequency = frequency
 *         self.ratio = ratio             # <<<<<<<<<<<<<<
 *         self.n = n
 * 
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_ratio); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3974, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* "pysndlib/generators.pyx":3975
 *         self.frequency = frequency
 *         self.ratio = ratio
 *         self.n = n             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 3975, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":3972
 * cdef class Nchoosekcos(CLMGenerator):
 * 
 *     def __init__(self, frequency, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.ratio = ratio
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3977
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_11Nchoosekcos_next(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_11Nchoosekcos_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_y;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3977, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_11Nchoosekcos_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3977, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3977, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3977, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":3978
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double y = x * self.ratio
 *         self.angle += self.frequency + fm
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":3979
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio             # <<<<<<<<<<<<<<
 *         self.angle += self.frequency + fm
 * 
 */
  __pyx_v_y = (__pyx_v_x * __pyx_v_self->ratio);

  /* "pysndlib/generators.pyx":3980
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 *         self.angle += self.frequency + fm             # <<<<<<<<<<<<<<
 * 
 *         return np.real(math.cos(x) * math.pow(math.cos(y), self.n))
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_self->frequency + __pyx_v_fm));

  /* "pysndlib/generators.pyx":3982
 *         self.angle += self.frequency + fm
 * 
 *         return np.real(math.cos(x) * math.pow(math.cos(y), self.n))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_real); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_math); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_math); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pow); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_math); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_cos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_y); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_11 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_11, __pyx_t_9};
    __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_8))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_8, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_9, __pyx_t_3, __pyx_t_10};
    __pyx_t_5 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3982, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3977
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11Nchoosekcos_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3977, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 3977, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3977, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3977, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_2next(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_2next(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Nchoosekcos->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3977, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3977, __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("pysndlib.generators.Nchoosekcos.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3984
 *         return np.real(math.cos(x) * math.pow(math.cos(y), self.n))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3984, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 3984, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3984, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 3984, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_4__call__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_4__call__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":3985
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3985, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3984
 *         return np.real(math.cos(x) * math.pow(math.cos(y), self.n))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":815
 * # TODO: This is not working correctly --------------- nchoosekcos ---------------- #
 * cdef class Nchoosekcos(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 815, __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("pysndlib.generators.Nchoosekcos.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 815, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":816
 * cdef class Nchoosekcos(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio___get__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 816, __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("pysndlib.generators.Nchoosekcos.ratio.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5ratio_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error)
  __pyx_v_self->ratio = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.ratio.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":817
 *     cdef public cython.double frequency
 *     cdef public cython.double ratio
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n___get__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 817, __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("pysndlib.generators.Nchoosekcos.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 817, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":818
 *     cdef public cython.double ratio
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle___get__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 818, __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("pysndlib.generators.Nchoosekcos.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_11Nchoosekcos_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 818, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->ratio); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.ratio)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Nchoosekcos); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, None), state
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Nchoosekcos); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_6431051);
    __Pyx_GIVEREF(__pyx_int_6431051);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_6431051)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_11Nchoosekcos_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_11Nchoosekcos_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nchoosekcos__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Nchoosekcos.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3988
 * 
 * 
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_427make_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_f_8pysndlib_10generators_make_nchoosekcos(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_nchoosekcos *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  PyObject *__pyx_v_amplitude = ((PyObject *)__pyx_float_1_0);
  struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nchoosekcos", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_amplitude = __pyx_optional_args->amplitude;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":3990
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 3990, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 3990, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_amplitude);
  __Pyx_GIVEREF(__pyx_v_amplitude);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_amplitude)) __PYX_ERR(0, 3990, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nchoosekcos), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3988
 * 
 * 
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_427make_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_426make_nchoosekcos, "creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_427make_nchoosekcos = {"make_nchoosekcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_427make_nchoosekcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_426make_nchoosekcos};
static PyObject *__pyx_pw_8pysndlib_10generators_427make_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_nchoosekcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,&__pyx_n_s_amplitude,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3988, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3988, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3988, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_nchoosekcos") < 0)) __PYX_ERR(0, 3988, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
    __pyx_v_amplitude = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_nchoosekcos", 0, 0, 3, __pyx_nargs); __PYX_ERR(0, 3988, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_426make_nchoosekcos(__pyx_self, __pyx_v_frequency, __pyx_v_n, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_426make_nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_nchoosekcos __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_nchoosekcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_nchoosekcos(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3988, __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("pysndlib.generators.make_nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":3992
 *     return Nchoosekcos(frequency, n, amplitude)
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by the binomial coefficients
 */

static PyObject *__pyx_pw_8pysndlib_10generators_429nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_nchoosekcos(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4000
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_nchoosekcos(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Nchoosekcos *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4000, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":3992
 *     return Nchoosekcos(frequency, n, amplitude)
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by the binomial coefficients
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_429nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_428nchoosekcos, "\n    returns a sum of cosines scaled by the binomial coefficients\n         \n    :param gen: nchoosekcos gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_429nchoosekcos = {"nchoosekcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_429nchoosekcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_428nchoosekcos};
static PyObject *__pyx_pw_8pysndlib_10generators_429nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("nchoosekcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3992, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 3992, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "nchoosekcos") < 0)) __PYX_ERR(0, 3992, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3992, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("nchoosekcos", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 3992, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Nchoosekcos, 1, "gen", 0))) __PYX_ERR(0, 3992, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_428nchoosekcos(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_428nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("nchoosekcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_nchoosekcos(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3992, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3992, __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("pysndlib.generators.nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4002
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nchoosekcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nchoosekcos
 */

static PyObject *__pyx_pw_8pysndlib_10generators_431is_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_nchoosekcos(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4009
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Nchoosekcos)             # <<<<<<<<<<<<<<
 * 
 * # --------------- sinc-train ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Nchoosekcos); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4002
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nchoosekcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nchoosekcos
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_431is_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_430is_nchoosekcos, "\n    returns True if gen is an nchoosekcos\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_431is_nchoosekcos = {"is_nchoosekcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_431is_nchoosekcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_430is_nchoosekcos};
static PyObject *__pyx_pw_8pysndlib_10generators_431is_nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_nchoosekcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4002, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_nchoosekcos") < 0)) __PYX_ERR(0, 4002, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_nchoosekcos", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4002, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_430is_nchoosekcos(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_430is_nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_nchoosekcos", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_nchoosekcos(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4002, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4002, __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("pysndlib.generators.is_nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4015
 * cdef class SincTrain(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4015, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4015, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4015, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4015, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain___init__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain___init__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":4016
 * 
 *     def __init__(self, frequency, n=1):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.n = n
 *         if self.n <= 0:
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4016, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":4017
 *     def __init__(self, frequency, n=1):
 *         self.frequency = frequency
 *         self.n = n             # <<<<<<<<<<<<<<
 *         if self.n <= 0:
 *             self.original_n = 1
 */
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4017, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":4018
 *         self.frequency = frequency
 *         self.n = n
 *         if self.n <= 0:             # <<<<<<<<<<<<<<
 *             self.original_n = 1
 *             self.n = 3
 */
  __pyx_t_3 = (__pyx_v_self->n <= 0);
  if (__pyx_t_3) {

    /* "pysndlib/generators.pyx":4019
 *         self.n = n
 *         if self.n <= 0:
 *             self.original_n = 1             # <<<<<<<<<<<<<<
 *             self.n = 3
 *         else:
 */
    __pyx_v_self->original_n = 1.0;

    /* "pysndlib/generators.pyx":4020
 *         if self.n <= 0:
 *             self.original_n = 1
 *             self.n = 3             # <<<<<<<<<<<<<<
 *         else:
 *             self.original_n = self.n
 */
    __pyx_v_self->n = 3;

    /* "pysndlib/generators.pyx":4018
 *         self.frequency = frequency
 *         self.n = n
 *         if self.n <= 0:             # <<<<<<<<<<<<<<
 *             self.original_n = 1
 *             self.n = 3
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":4022
 *             self.n = 3
 *         else:
 *             self.original_n = self.n             # <<<<<<<<<<<<<<
 *             self.n = 1 + (2 * self.n)
 *         self.original_frequency = self.frequency
 */
  /*else*/ {
    __pyx_t_2 = __pyx_v_self->n;
    __pyx_v_self->original_n = __pyx_t_2;

    /* "pysndlib/generators.pyx":4023
 *         else:
 *             self.original_n = self.n
 *             self.n = 1 + (2 * self.n)             # <<<<<<<<<<<<<<
 *         self.original_frequency = self.frequency
 *         self.frequency = .5 * self.n * clm.hz2radians(self.frequency)
 */
    __pyx_v_self->n = (1 + (2 * __pyx_v_self->n));
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":4024
 *             self.original_n = self.n
 *             self.n = 1 + (2 * self.n)
 *         self.original_frequency = self.frequency             # <<<<<<<<<<<<<<
 *         self.frequency = .5 * self.n * clm.hz2radians(self.frequency)
 *         self.angle = 0.0
 */
  __pyx_t_1 = __pyx_v_self->frequency;
  __pyx_v_self->original_frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":4025
 *             self.n = 1 + (2 * self.n)
 *         self.original_frequency = self.frequency
 *         self.frequency = .5 * self.n * clm.hz2radians(self.frequency)             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *         self.n = n
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_v_self->frequency, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4025, __pyx_L1_error)
  __pyx_v_self->frequency = ((.5 * __pyx_v_self->n) * __pyx_t_1);

  /* "pysndlib/generators.pyx":4026
 *         self.original_frequency = self.frequency
 *         self.frequency = .5 * self.n * clm.hz2radians(self.frequency)
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *         self.n = n
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":4027
 *         self.frequency = .5 * self.n * clm.hz2radians(self.frequency)
 *         self.angle = 0.0
 *         self.n = n             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 */
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4027, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_2;

  /* "pysndlib/generators.pyx":4015
 * cdef class SincTrain(CLMGenerator):
 * 
 *     def __init__(self, frequency, n=1):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.n = n
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4029
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9SincTrain_next(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9SincTrain_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_max_angle;
  double __pyx_v_new_angle;
  double __pyx_v_DC;
  double __pyx_v_norm;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  long __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9SincTrain_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4029, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4029, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4029, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4030
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle             # <<<<<<<<<<<<<<
 *         cdef cython.double max_angle = PI * .5 * self.n
 *         cdef cython.double new_angle = x + fm + self.frequency
 */
  __pyx_t_7 = __pyx_v_self->angle;
  __pyx_v_x = __pyx_t_7;

  /* "pysndlib/generators.pyx":4031
 *     cpdef cython.double next(self, cython.double fm=0.0):
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double new_angle = x + fm + self.frequency
 *         cdef cython.double DC = 1.0 / self.n
 */
  __pyx_v_max_angle = ((__pyx_v_8pysndlib_10generators_PI * .5) * __pyx_v_self->n);

  /* "pysndlib/generators.pyx":4032
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 *         cdef cython.double new_angle = x + fm + self.frequency             # <<<<<<<<<<<<<<
 *         cdef cython.double DC = 1.0 / self.n
 *         cdef cython.double norm = self.n / (self.n - 1)
 */
  __pyx_v_new_angle = ((__pyx_v_x + __pyx_v_fm) + __pyx_v_self->frequency);

  /* "pysndlib/generators.pyx":4033
 *         cdef cython.double max_angle = PI * .5 * self.n
 *         cdef cython.double new_angle = x + fm + self.frequency
 *         cdef cython.double DC = 1.0 / self.n             # <<<<<<<<<<<<<<
 *         cdef cython.double norm = self.n / (self.n - 1)
 *         if new_angle > max_angle:
 */
  if (unlikely(__pyx_v_self->n == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4033, __pyx_L1_error)
  }
  __pyx_v_DC = (1.0 / ((double)__pyx_v_self->n));

  /* "pysndlib/generators.pyx":4034
 *         cdef cython.double new_angle = x + fm + self.frequency
 *         cdef cython.double DC = 1.0 / self.n
 *         cdef cython.double norm = self.n / (self.n - 1)             # <<<<<<<<<<<<<<
 *         if new_angle > max_angle:
 *             new_angle = new_angle - (PI * self.n)
 */
  __pyx_t_8 = (__pyx_v_self->n - 1);
  if (unlikely(__pyx_t_8 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4034, __pyx_L1_error)
  }
  __pyx_v_norm = (((double)__pyx_v_self->n) / ((double)__pyx_t_8));

  /* "pysndlib/generators.pyx":4035
 *         cdef cython.double DC = 1.0 / self.n
 *         cdef cython.double norm = self.n / (self.n - 1)
 *         if new_angle > max_angle:             # <<<<<<<<<<<<<<
 *             new_angle = new_angle - (PI * self.n)
 *         self.angle = new_angle
 */
  __pyx_t_9 = (__pyx_v_new_angle > __pyx_v_max_angle);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":4036
 *         cdef cython.double norm = self.n / (self.n - 1)
 *         if new_angle > max_angle:
 *             new_angle = new_angle - (PI * self.n)             # <<<<<<<<<<<<<<
 *         self.angle = new_angle
 *         if fabs(x) < NEARLY_ZERO:
 */
    __pyx_v_new_angle = (__pyx_v_new_angle - (__pyx_v_8pysndlib_10generators_PI * __pyx_v_self->n));

    /* "pysndlib/generators.pyx":4035
 *         cdef cython.double DC = 1.0 / self.n
 *         cdef cython.double norm = self.n / (self.n - 1)
 *         if new_angle > max_angle:             # <<<<<<<<<<<<<<
 *             new_angle = new_angle - (PI * self.n)
 *         self.angle = new_angle
 */
  }

  /* "pysndlib/generators.pyx":4037
 *         if new_angle > max_angle:
 *             new_angle = new_angle - (PI * self.n)
 *         self.angle = new_angle             # <<<<<<<<<<<<<<
 *         if fabs(x) < NEARLY_ZERO:
 *             return 1.0
 */
  __pyx_v_self->angle = __pyx_v_new_angle;

  /* "pysndlib/generators.pyx":4038
 *             new_angle = new_angle - (PI * self.n)
 *         self.angle = new_angle
 *         if fabs(x) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         return norm * ((sin(x) / x) - DC)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4038, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_8pysndlib_10generators_NEARLY_ZERO); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":4039
 *         self.angle = new_angle
 *         if fabs(x) < NEARLY_ZERO:
 *             return 1.0             # <<<<<<<<<<<<<<
 *         return norm * ((sin(x) / x) - DC)
 * 
 */
    __pyx_r = 1.0;
    goto __pyx_L0;

    /* "pysndlib/generators.pyx":4038
 *             new_angle = new_angle - (PI * self.n)
 *         self.angle = new_angle
 *         if fabs(x) < NEARLY_ZERO:             # <<<<<<<<<<<<<<
 *             return 1.0
 *         return norm * ((sin(x) / x) - DC)
 */
  }

  /* "pysndlib/generators.pyx":4040
 *         if fabs(x) < NEARLY_ZERO:
 *             return 1.0
 *         return norm * ((sin(x) / x) - DC)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_norm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_DC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4029
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 */

  /* 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("pysndlib.generators.SincTrain.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9SincTrain_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9SincTrain_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4029, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4029, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4029, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4029, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_2next(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_2next(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_SincTrain->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4029, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4029, __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("pysndlib.generators.SincTrain.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4042
 *         return norm * ((sin(x) / x) - DC)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4042, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4042, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4042, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4042, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_4__call__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_4__call__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4043
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SincTrain *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4043, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4042
 *         return norm * ((sin(x) / x) - DC)
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4045
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.original_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":4047
 *     @property
 *     def mus_frequency(self) -> cython.double:
 *         return self.original_frequency             # <<<<<<<<<<<<<<
 * 
 *     @mus_frequency.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->original_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4045
 *         return self.next(fm)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_frequency(self) -> cython.double:
 *         return self.original_frequency
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.mus_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4049
 *         return self.original_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.original_frequency = val
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  double __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __pyx_PyFloat_AsDouble(__pyx_arg_val); if (unlikely((__pyx_v_val == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4050, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((double)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_13mus_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, double __pyx_v_val) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":4051
 *     @mus_frequency.setter
 *     def mus_frequency(self, val: cython.double):
 *         self.original_frequency = val             # <<<<<<<<<<<<<<
 *         self.frequency = .5 * self.n * clm.hz2radians(val)
 * 
 */
  __pyx_v_self->original_frequency = __pyx_v_val;

  /* "pysndlib/generators.pyx":4052
 *     def mus_frequency(self, val: cython.double):
 *         self.original_frequency = val
 *         self.frequency = .5 * self.n * clm.hz2radians(val)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_v_val, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4052, __pyx_L1_error)
  __pyx_v_self->frequency = ((.5 * __pyx_v_self->n) * __pyx_t_1);

  /* "pysndlib/generators.pyx":4049
 *         return self.original_frequency
 * 
 *     @mus_frequency.setter             # <<<<<<<<<<<<<<
 *     def mus_frequency(self, val: cython.double):
 *         self.original_frequency = val
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.mus_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4054
 *         self.frequency = .5 * self.n * clm.hz2radians(val)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.int:
 *         return self.original_n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":4056
 *     @property
 *     def mus_order(self) -> cython.int:
 *         return self.original_n             # <<<<<<<<<<<<<<
 * 
 *     @mus_order.setter
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->original_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4054
 *         self.frequency = .5 * self.n * clm.hz2radians(val)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_order(self) -> cython.int:
 *         return self.original_n
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.mus_order.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4058
 *         return self.original_n
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.int):
 *         if val <= 0:
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_arg_val) {
  int __pyx_v_val;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  assert(__pyx_arg_val); {
    __pyx_v_val = __Pyx_PyInt_As_int(__pyx_arg_val); if (unlikely((__pyx_v_val == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4059, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.mus_order.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((int)__pyx_v_val));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_9mus_order_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, int __pyx_v_val) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4060
 *     @mus_order.setter
 *     def mus_order(self, val: cython.int):
 *         if val <= 0:             # <<<<<<<<<<<<<<
 *             self.original_n = 1
 *             self.n = 3
 */
  __pyx_t_1 = (__pyx_v_val <= 0);
  if (__pyx_t_1) {

    /* "pysndlib/generators.pyx":4061
 *     def mus_order(self, val: cython.int):
 *         if val <= 0:
 *             self.original_n = 1             # <<<<<<<<<<<<<<
 *             self.n = 3
 *         else:
 */
    __pyx_v_self->original_n = 1.0;

    /* "pysndlib/generators.pyx":4062
 *         if val <= 0:
 *             self.original_n = 1
 *             self.n = 3             # <<<<<<<<<<<<<<
 *         else:
 *             self.original_n = val
 */
    __pyx_v_self->n = 3;

    /* "pysndlib/generators.pyx":4060
 *     @mus_order.setter
 *     def mus_order(self, val: cython.int):
 *         if val <= 0:             # <<<<<<<<<<<<<<
 *             self.original_n = 1
 *             self.n = 3
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":4064
 *             self.n = 3
 *         else:
 *             self.original_n = val             # <<<<<<<<<<<<<<
 *             self.n = 1 + (2 * val)
 * 
 */
  /*else*/ {
    __pyx_v_self->original_n = __pyx_v_val;

    /* "pysndlib/generators.pyx":4065
 *         else:
 *             self.original_n = val
 *             self.n = 1 + (2 * val)             # <<<<<<<<<<<<<<
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):
 */
    __pyx_v_self->n = (1 + (2 * __pyx_v_val));
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":4058
 *         return self.original_n
 * 
 *     @mus_order.setter             # <<<<<<<<<<<<<<
 *     def mus_order(self, val: cython.int):
 *         if val <= 0:
 */

  /* function exit code */
  __pyx_r = 0;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":828
 * 
 * cdef class SincTrain(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.int n
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 828, __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("pysndlib.generators.SincTrain.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 828, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":829
 * cdef class SincTrain(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 *     cdef public cython.double original_n
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_1n___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_1n___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 829, __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("pysndlib.generators.SincTrain.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 829, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":830
 *     cdef public cython.double frequency
 *     cdef public cython.int n
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 *     cdef public cython.double original_n
 *     cdef public cython.double original_frequency
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_5angle___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 830, __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("pysndlib.generators.SincTrain.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 830, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":831
 *     cdef public cython.int n
 *     cdef public cython.double angle
 *     cdef public cython.double original_n             # <<<<<<<<<<<<<<
 *     cdef public cython.double original_frequency
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_10original_n___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_10original_n___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->original_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 831, __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("pysndlib.generators.SincTrain.original_n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_10original_n_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_10original_n_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 831, __pyx_L1_error)
  __pyx_v_self->original_n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.original_n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":832
 *     cdef public cython.double angle
 *     cdef public cython.double original_n
 *     cdef public cython.double original_frequency             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency___get__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency___get__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->original_frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 832, __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("pysndlib.generators.SincTrain.original_frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9SincTrain_18original_frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 832, __pyx_L1_error)
  __pyx_v_self->original_frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.original_frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9SincTrain_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9SincTrain_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.original_frequency, self.original_n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->original_frequency); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->original_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.angle, self.frequency, self.n, self.original_frequency, self.original_n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.original_frequency, self.original_n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.angle, self.frequency, self.n, self.original_frequency, self.original_n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_SincTrain); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_150941660);
    __Pyx_GIVEREF(__pyx_int_150941660);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_150941660)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, None), state
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_SincTrain); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_150941660);
    __Pyx_GIVEREF(__pyx_int_150941660);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_150941660)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9SincTrain_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9SincTrain_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9SincTrain_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9SincTrain_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9SincTrain_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_SincTrain__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.SincTrain.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4067
 *             self.n = 1 + (2 * val)
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a sinc-train generator with n components
 */

static PyObject *__pyx_pw_8pysndlib_10generators_433make_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_f_8pysndlib_10generators_make_sinc_train(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_sinc_train *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_sinc_train", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_n = __pyx_optional_args->n;
      }
    }
  }

  /* "pysndlib/generators.pyx":4071
 *     creates a sinc-train generator with n components
 *     """
 *     return SincTrain(frequency, n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 4071, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 4071, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_SincTrain), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4071, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4067
 *             self.n = 1 + (2 * val)
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a sinc-train generator with n components
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_433make_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_432make_sinc_train, "\n    creates a sinc-train generator with n components\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_433make_sinc_train = {"make_sinc_train", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_433make_sinc_train, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_432make_sinc_train};
static PyObject *__pyx_pw_8pysndlib_10generators_433make_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_sinc_train (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4067, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4067, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_sinc_train") < 0)) __PYX_ERR(0, 4067, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_n = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_sinc_train", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 4067, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_432make_sinc_train(__pyx_self, __pyx_v_frequency, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_432make_sinc_train(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_sinc_train __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_sinc_train", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_sinc_train(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4067, __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("pysndlib.generators.make_sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4073
 *     return SincTrain(frequency, n)
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinc-train
 */

static PyObject *__pyx_pw_8pysndlib_10generators_435sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_sinc_train(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_sinc_train *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4081
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_sinc_train(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_SincTrain *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4081, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4073
 *     return SincTrain(frequency, n)
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinc-train
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_435sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_434sinc_train, "\n    returns a sinc-train\n    \n    :param gen: sinc_train gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_435sinc_train = {"sinc_train", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_435sinc_train, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_434sinc_train};
static PyObject *__pyx_pw_8pysndlib_10generators_435sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("sinc_train (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4073, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4073, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "sinc_train") < 0)) __PYX_ERR(0, 4073, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_SincTrain *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4073, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("sinc_train", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4073, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_SincTrain, 1, "gen", 0))) __PYX_ERR(0, 4073, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_434sinc_train(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_434sinc_train(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_sinc_train __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("sinc_train", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_sinc_train(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4073, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4073, __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("pysndlib.generators.sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4083
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_sinc_train(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an sinc_train
 */

static PyObject *__pyx_pw_8pysndlib_10generators_437is_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_sinc_train(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4090
 *     :rtype: bool
 *     """
 *     return isinstance(gen, SincTrain)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_SincTrain); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4083
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_sinc_train(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an sinc_train
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_437is_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_436is_sinc_train, "\n    returns True if gen is an sinc_train\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_437is_sinc_train = {"is_sinc_train", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_437is_sinc_train, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_436is_sinc_train};
static PyObject *__pyx_pw_8pysndlib_10generators_437is_sinc_train(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_sinc_train (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4083, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_sinc_train") < 0)) __PYX_ERR(0, 4083, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_sinc_train", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4083, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_436is_sinc_train(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_436is_sinc_train(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_sinc_train", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_sinc_train(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4083, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4083, __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("pysndlib.generators.is_sinc_train", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4097
 * cdef class PinkNoise(CLMGenerator):
 * 
 *     def __init__(self, n):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.data = np.zeros(self.n*2, dtype=np.double)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4097, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4097, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4097, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise___init__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9PinkNoise___init__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_n) {
  double __pyx_v_amp;
  PyObject *__pyx_v_i = NULL;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  double __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  PyObject *(*__pyx_t_9)(PyObject *);
  struct __pyx_opt_args_8pysndlib_3clm_random __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4098
 * 
 *     def __init__(self, n):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.data = np.zeros(self.n*2, dtype=np.double)
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4098, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4099
 *     def __init__(self, n):
 *         self.n = n
 *         self.data = np.zeros(self.n*2, dtype=np.double)             # <<<<<<<<<<<<<<
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))
 *         self.data[0] = amp
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_self->n * 2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_double); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4099, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_6);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->data);
  __pyx_v_self->data = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "pysndlib/generators.pyx":4100
 *         self.n = n
 *         self.data = np.zeros(self.n*2, dtype=np.double)
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))             # <<<<<<<<<<<<<<
 *         self.data[0] = amp
 *         for i in range(2,2*self.n,2):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4100, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_2_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_amp = __pyx_t_7;

  /* "pysndlib/generators.pyx":4101
 *         self.data = np.zeros(self.n*2, dtype=np.double)
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))
 *         self.data[0] = amp             # <<<<<<<<<<<<<<
 *         for i in range(2,2*self.n,2):
 *             self.data[i] =  clm.random(amp)
 */
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_amp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely((__Pyx_SetItemInt(((PyObject *)__pyx_v_self->data), 0, __pyx_t_6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0))) __PYX_ERR(0, 4101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

  /* "pysndlib/generators.pyx":4102
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))
 *         self.data[0] = amp
 *         for i in range(2,2*self.n,2):             # <<<<<<<<<<<<<<
 *             self.data[i] =  clm.random(amp)
 *             self.data[i+1] = random.random()
 */
  __pyx_t_6 = __Pyx_PyInt_From_long((2 * __pyx_v_self->n)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2)) __PYX_ERR(0, 4102, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6)) __PYX_ERR(0, 4102, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_2)) __PYX_ERR(0, 4102, __pyx_L1_error);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_2 = __pyx_t_6; __Pyx_INCREF(__pyx_t_2);
    __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4102, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4102, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 4102, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 4102, __pyx_L1_error)
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 4102, __pyx_L1_error)
          #endif
          if (__pyx_t_8 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely((0 < 0))) __PYX_ERR(0, 4102, __pyx_L1_error)
        #else
        __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_9(__pyx_t_2);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4102, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_6);
    __pyx_t_6 = 0;

    /* "pysndlib/generators.pyx":4103
 *         self.data[0] = amp
 *         for i in range(2,2*self.n,2):
 *             self.data[i] =  clm.random(amp)             # <<<<<<<<<<<<<<
 *             self.data[i+1] = random.random()
 * 
 */
    __pyx_t_10.__pyx_n = 1;
    __pyx_t_10.x = __pyx_v_amp;
    __pyx_t_7 = __pyx_f_8pysndlib_3clm_random(0, &__pyx_t_10); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4103, __pyx_L1_error)
    __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4103, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_self->data), __pyx_v_i, __pyx_t_6) < 0))) __PYX_ERR(0, 4103, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pysndlib/generators.pyx":4104
 *         for i in range(2,2*self.n,2):
 *             self.data[i] =  clm.random(amp)
 *             self.data[i+1] = random.random()             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 */
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_random); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_random); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_1 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_1 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_4, NULL};
      __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 0+__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4104, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4104, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely((PyObject_SetItem(((PyObject *)__pyx_v_self->data), __pyx_t_3, __pyx_t_6) < 0))) __PYX_ERR(0, 4104, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "pysndlib/generators.pyx":4102
 *         amp: cython.double = 1.0 / (2.5 * sqrt(self.n))
 *         self.data[0] = amp
 *         for i in range(2,2*self.n,2):             # <<<<<<<<<<<<<<
 *             self.data[i] =  clm.random(amp)
 *             self.data[i+1] = random.random()
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4097
 * cdef class PinkNoise(CLMGenerator):
 * 
 *     def __init__(self, n):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.data = np.zeros(self.n*2, dtype=np.double)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4106
 *             self.data[i+1] = random.random()
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9PinkNoise_next(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9PinkNoise_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_x;
  double __pyx_v_s;
  double __pyx_v_amp;
  int __pyx_v_size;
  long __pyx_v_i;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  long __pyx_t_9;
  PyArrayObject *__pyx_t_10 = NULL;
  long __pyx_t_11;
  int __pyx_t_12;
  struct __pyx_opt_args_8pysndlib_3clm_random __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4106, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9PinkNoise_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4106, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4106, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4106, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4107
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double x = 0.5             # <<<<<<<<<<<<<<
 *         cdef cython.double s = 0.0
 *         cdef cython.double amp = self.data[0]
 */
  __pyx_v_x = 0.5;

  /* "pysndlib/generators.pyx":4108
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0             # <<<<<<<<<<<<<<
 *         cdef cython.double amp = self.data[0]
 *         cdef cython.int size = self.n*2
 */
  __pyx_v_s = 0.0;

  /* "pysndlib/generators.pyx":4109
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 *         cdef cython.double amp = self.data[0]             # <<<<<<<<<<<<<<
 *         cdef cython.int size = self.n*2
 * 
 */
  __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->data), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_amp = __pyx_t_7;

  /* "pysndlib/generators.pyx":4110
 *         cdef cython.double s = 0.0
 *         cdef cython.double amp = self.data[0]
 *         cdef cython.int size = self.n*2             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.long i = 0
 */
  __pyx_v_size = (__pyx_v_self->n * 2);

  /* "pysndlib/generators.pyx":4112
 *         cdef cython.int size = self.n*2
 * 
 *         cdef cython.long i = 0             # <<<<<<<<<<<<<<
 * 
 *         for i in range(2,size,2):
 */
  __pyx_v_i = 0;

  /* "pysndlib/generators.pyx":4114
 *         cdef cython.long i = 0
 * 
 *         for i in range(2,size,2):             # <<<<<<<<<<<<<<
 *             s += self.data[i]
 *             self.data[i+1] -= x
 */
  __pyx_t_6 = __pyx_v_size;
  __pyx_t_8 = __pyx_t_6;
  for (__pyx_t_9 = 2; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=2) {
    __pyx_v_i = __pyx_t_9;

    /* "pysndlib/generators.pyx":4115
 * 
 *         for i in range(2,size,2):
 *             s += self.data[i]             # <<<<<<<<<<<<<<
 *             self.data[i+1] -= x
 * 
 */
    __pyx_t_1 = PyFloat_FromDouble(__pyx_v_s); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->data), __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4115, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4115, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_s = __pyx_t_7;

    /* "pysndlib/generators.pyx":4116
 *         for i in range(2,size,2):
 *             s += self.data[i]
 *             self.data[i+1] -= x             # <<<<<<<<<<<<<<
 * 
 *             if self.data[i+1] < 0.0:
 */
    __Pyx_INCREF((PyObject *)__pyx_v_self->data);
    __pyx_t_10 = __pyx_v_self->data;
    __pyx_t_11 = (__pyx_v_i + 1);
    __pyx_t_4 = __Pyx_GetItemInt(((PyObject *)__pyx_t_10), __pyx_t_11, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely((__Pyx_SetItemInt(((PyObject *)__pyx_t_10), __pyx_t_11, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(0, 4116, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF((PyObject *)__pyx_t_10); __pyx_t_10 = 0;

    /* "pysndlib/generators.pyx":4118
 *             self.data[i+1] -= x
 * 
 *             if self.data[i+1] < 0.0:             # <<<<<<<<<<<<<<
 *                 self.data[i] = clm.random(amp)
 *                 self.data[i+1] += 1.0
 */
    __pyx_t_11 = (__pyx_v_i + 1);
    __pyx_t_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_self->data), __pyx_t_11, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4118, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(0, 4118, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_12) {

      /* "pysndlib/generators.pyx":4119
 * 
 *             if self.data[i+1] < 0.0:
 *                 self.data[i] = clm.random(amp)             # <<<<<<<<<<<<<<
 *                 self.data[i+1] += 1.0
 *             x *= .5
 */
      __pyx_t_13.__pyx_n = 1;
      __pyx_t_13.x = __pyx_v_amp;
      __pyx_t_7 = __pyx_f_8pysndlib_3clm_random(0, &__pyx_t_13); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4119, __pyx_L1_error)
      __pyx_t_2 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4119, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely((__Pyx_SetItemInt(((PyObject *)__pyx_v_self->data), __pyx_v_i, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(0, 4119, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

      /* "pysndlib/generators.pyx":4120
 *             if self.data[i+1] < 0.0:
 *                 self.data[i] = clm.random(amp)
 *                 self.data[i+1] += 1.0             # <<<<<<<<<<<<<<
 *             x *= .5
 *         return s + clm.random(amp)
 */
      __Pyx_INCREF((PyObject *)__pyx_v_self->data);
      __pyx_t_10 = __pyx_v_self->data;
      __pyx_t_11 = (__pyx_v_i + 1);
      __pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_t_10), __pyx_t_11, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyFloat_AddObjC(__pyx_t_2, __pyx_float_1_0, 1.0, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely((__Pyx_SetItemInt(((PyObject *)__pyx_t_10), __pyx_t_11, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(0, 4120, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF((PyObject *)__pyx_t_10); __pyx_t_10 = 0;

      /* "pysndlib/generators.pyx":4118
 *             self.data[i+1] -= x
 * 
 *             if self.data[i+1] < 0.0:             # <<<<<<<<<<<<<<
 *                 self.data[i] = clm.random(amp)
 *                 self.data[i+1] += 1.0
 */
    }

    /* "pysndlib/generators.pyx":4121
 *                 self.data[i] = clm.random(amp)
 *                 self.data[i+1] += 1.0
 *             x *= .5             # <<<<<<<<<<<<<<
 *         return s + clm.random(amp)
 * 
 */
    __pyx_v_x = (__pyx_v_x * .5);
  }

  /* "pysndlib/generators.pyx":4122
 *                 self.data[i+1] += 1.0
 *             x *= .5
 *         return s + clm.random(amp)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 */
  __pyx_t_13.__pyx_n = 1;
  __pyx_t_13.x = __pyx_v_amp;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_random(0, &__pyx_t_13); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4122, __pyx_L1_error)
  __pyx_r = (__pyx_v_s + __pyx_t_7);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4106
 *             self.data[i+1] = random.random()
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF((PyObject *)__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9PinkNoise_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9PinkNoise_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4106, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4106, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4106, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4106, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_2next(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_2next(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_PinkNoise->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4106, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4106, __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("pysndlib.generators.PinkNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4124
 *         return s + clm.random(amp)
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4124, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4124, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4124, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_4__call__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4125
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef PinkNoise make_pink_noise(n=1):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_PinkNoise *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4125, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4124
 *         return s + clm.random(amp)
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":839
 * # --------------- pink-noise ---------------- #
 * cdef class PinkNoise(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public np.ndarray data
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_1n___get__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_1n___get__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 839, __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("pysndlib.generators.PinkNoise.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9PinkNoise_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 839, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":840
 * cdef class PinkNoise(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public np.ndarray data             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_4data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_4data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_4data___get__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_4data___get__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->data);
  __pyx_r = ((PyObject *)__pyx_v_self->data);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_2__set__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_2__set__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(3, 840, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->data);
  __pyx_v_self->data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.data.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_4__del__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9PinkNoise_4data_4__del__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->data);
  __Pyx_DECREF((PyObject *)__pyx_v_self->data);
  __pyx_v_self->data = ((PyArrayObject *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9PinkNoise_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9PinkNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.data, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->data);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->data);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->data))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.data, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.data, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.data is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.data, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.data is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->data) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.data is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.data is not None
 *     if use_setstate:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_PinkNoise); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_19846739);
    __Pyx_GIVEREF(__pyx_int_19846739);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_19846739)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.data is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, None), state
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_PinkNoise); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_19846739);
    __Pyx_GIVEREF(__pyx_int_19846739);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_19846739)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9PinkNoise_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9PinkNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9PinkNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9PinkNoise_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9PinkNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_PinkNoise__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.PinkNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4127
 *         return self.next(fm)
 * 
 * cpdef PinkNoise make_pink_noise(n=1):             # <<<<<<<<<<<<<<
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_439make_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_f_8pysndlib_10generators_make_pink_noise(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_pink_noise *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_1);
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_pink_noise", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4129
 * cpdef PinkNoise make_pink_noise(n=1):
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_PinkNoise), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4127
 *         return self.next(fm)
 * 
 * cpdef PinkNoise make_pink_noise(n=1):             # <<<<<<<<<<<<<<
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_439make_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_438make_pink_noise, "Creates a pink-noise generator with n octaves of rand (12 is recommended).");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_439make_pink_noise = {"make_pink_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_439make_pink_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_438make_pink_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_439make_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_pink_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4127, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_pink_noise") < 0)) __PYX_ERR(0, 4127, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_pink_noise", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4127, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_438make_pink_noise(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_438make_pink_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_pink_noise __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_pink_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_pink_noise(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4127, __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("pysndlib.generators.make_pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4131
 *     return PinkNoise( n)
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next random value in the 1/f stream produced by gen.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_441pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_pink_noise(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_pink_noise *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4139
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_pink_noise(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_PinkNoise *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4139, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4131
 *     return PinkNoise( n)
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next random value in the 1/f stream produced by gen.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_441pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_440pink_noise, "\n    Returns the next random value in the 1/f stream produced by gen.\n    \n    :param gen: pink_noise gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_441pink_noise = {"pink_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_441pink_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_440pink_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_441pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("pink_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4131, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4131, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "pink_noise") < 0)) __PYX_ERR(0, 4131, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4131, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("pink_noise", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4131, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_PinkNoise, 1, "gen", 0))) __PYX_ERR(0, 4131, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_440pink_noise(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_440pink_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_pink_noise __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("pink_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_pink_noise(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4131, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4131, __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("pysndlib.generators.pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4141
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_pink_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an pink_noise
 */

static PyObject *__pyx_pw_8pysndlib_10generators_443is_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_pink_noise(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4148
 *     :rtype: bool
 *     """
 *     return isinstance(gen, PinkNoise)             # <<<<<<<<<<<<<<
 * 
 * # --------------- brown-noise ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_PinkNoise); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4141
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_pink_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an pink_noise
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_443is_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_442is_pink_noise, "\n    returns True if gen is an pink_noise\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_443is_pink_noise = {"is_pink_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_443is_pink_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_442is_pink_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_443is_pink_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_pink_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4141, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_pink_noise") < 0)) __PYX_ERR(0, 4141, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_pink_noise", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4141, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_442is_pink_noise(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_442is_pink_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_pink_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_pink_noise(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4141, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4141, __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("pysndlib.generators.is_pink_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4153
 * cdef class BrownNoise(CLMGenerator):
 * 
 *     def __init__(self, frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.prev = 0
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4153, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4153, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4153, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4153, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise___init__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), __pyx_v_frequency, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise___init__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4154
 * 
 *     def __init__(self, frequency, amplitude=1.0):
 *         self.gr = clm.make_rand(frequency, amplitude)             # <<<<<<<<<<<<<<
 *         self.prev = 0
 *         self.sum = 0
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_rand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_frequency, __pyx_v_amplitude};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4154, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4155
 *     def __init__(self, frequency, amplitude=1.0):
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.prev = 0             # <<<<<<<<<<<<<<
 *         self.sum = 0
 * 
 */
  __pyx_v_self->prev = 0.0;

  /* "pysndlib/generators.pyx":4156
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.prev = 0
 *         self.sum = 0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 */
  __pyx_v_self->sum = 0.0;

  /* "pysndlib/generators.pyx":4153
 * cdef class BrownNoise(CLMGenerator):
 * 
 *     def __init__(self, frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.prev = 0
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4158
 *         self.sum = 0
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */

static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_10BrownNoise_next(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10BrownNoise_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_val;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_rand __pyx_t_8;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_10BrownNoise_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4158, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4158, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4158, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4159
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         val: cython.double = clm.rand(self.gr, fm)             # <<<<<<<<<<<<<<
 *         if val != self.prev:
 *             self.prev = val
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gr);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.sweep = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_rand(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_val = __pyx_t_7;

  /* "pysndlib/generators.pyx":4160
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:             # <<<<<<<<<<<<<<
 *             self.prev = val
 *             self.sum += val
 */
  __pyx_t_9 = (__pyx_v_val != __pyx_v_self->prev);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":4161
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 *             self.prev = val             # <<<<<<<<<<<<<<
 *             self.sum += val
 *         return self.sum
 */
    __pyx_v_self->prev = __pyx_v_val;

    /* "pysndlib/generators.pyx":4162
 *         if val != self.prev:
 *             self.prev = val
 *             self.sum += val             # <<<<<<<<<<<<<<
 *         return self.sum
 * 
 */
    __pyx_v_self->sum = (__pyx_v_self->sum + __pyx_v_val);

    /* "pysndlib/generators.pyx":4160
 *     cpdef cython.double next(self, fm: cython.double =0.0):
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:             # <<<<<<<<<<<<<<
 *             self.prev = val
 *             self.sum += val
 */
  }

  /* "pysndlib/generators.pyx":4163
 *             self.prev = val
 *             self.sum += val
 *         return self.sum             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) ->  cython.double:
 */
  __pyx_r = __pyx_v_self->sum;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4158
 *         self.sum = 0
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */

  /* 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("pysndlib.generators.BrownNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10BrownNoise_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10BrownNoise_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4158, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4158, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4158, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4158, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_2next(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_2next(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_BrownNoise->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4158, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4158, __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("pysndlib.generators.BrownNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4165
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double=0.) ->  cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4165, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4165, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4165, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4165, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_4__call__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4166
 * 
 *     def __call__(self, fm: cython.double=0.) ->  cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_BrownNoise *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4166, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4165
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double=0.) ->  cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":847
 * # --------------- brown-noise ---------------- #
 * cdef class BrownNoise(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 847, __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("pysndlib.generators.BrownNoise.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 847, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":848
 * cdef class BrownNoise(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public cython.double prev
 *     cdef public cython.double sum
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 848, __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("pysndlib.generators.BrownNoise.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":849
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev             # <<<<<<<<<<<<<<
 *     cdef public cython.double sum
 *     cdef public clm.mus_any gr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_4prev___get__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_4prev___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->prev); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 849, __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("pysndlib.generators.BrownNoise.prev.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_4prev_2__set__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_4prev_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 849, __pyx_L1_error)
  __pyx_v_self->prev = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.prev.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":850
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev
 *     cdef public cython.double sum             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gr
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_3sum___get__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_3sum___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 850, __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("pysndlib.generators.BrownNoise.sum.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_3sum_2__set__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 850, __pyx_L1_error)
  __pyx_v_self->sum = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.sum.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":851
 *     cdef public cython.double prev
 *     cdef public cython.double sum
 *     cdef public clm.mus_any gr             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr___get__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_2gr___get__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gr);
  __pyx_r = ((PyObject *)__pyx_v_self->gr);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_2__set__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_2__set__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 851, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.gr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_4__del__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10BrownNoise_2gr_4__del__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10BrownNoise_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10BrownNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.frequency, self.gr, self.prev, self.sum)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->prev); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gr);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_self->gr))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.frequency, self.gr, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_5 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v__dict = __pyx_t_5;
  __pyx_t_5 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.frequency, self.gr, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_6 = (__pyx_v__dict != Py_None);
  if (__pyx_t_6) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gr is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.frequency, self.gr, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gr is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, None), state
 */
  /*else*/ {
    __pyx_t_6 = (((PyObject *)__pyx_v_self->gr) != Py_None);
    __pyx_v_use_setstate = __pyx_t_6;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gr is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gr is not None
 *     if use_setstate:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_BrownNoise); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_93173464);
    __Pyx_GIVEREF(__pyx_int_93173464);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_93173464)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gr is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, None), state
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_BrownNoise); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_93173464);
    __Pyx_GIVEREF(__pyx_int_93173464);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_93173464)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10BrownNoise_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10BrownNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10BrownNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10BrownNoise_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10BrownNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_BrownNoise__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.BrownNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4169
 * 
 * 
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_445make_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_f_8pysndlib_10generators_make_brown_noise(PyObject *__pyx_v_frequency, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_brown_noise *__pyx_optional_args) {
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *__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("make_brown_noise", 1);
  if (__pyx_optional_args) {
  }

  /* "pysndlib/generators.pyx":4171
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 4171, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_amplitude, __pyx_float_1_0) < 0) __PYX_ERR(0, 4171, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_BrownNoise), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4171, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4169
 * 
 * 
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.make_brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_445make_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_444make_brown_noise, "Returns a generator that produces brownian noise.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_445make_brown_noise = {"make_brown_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_445make_brown_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_444make_brown_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_445make_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_brown_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4169, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4169, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_brown_noise") < 0)) __PYX_ERR(0, 4169, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_brown_noise", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4169, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_444make_brown_noise(__pyx_self, __pyx_v_frequency, __pyx_v_amplitude);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_444make_brown_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_brown_noise __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_brown_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_brown_noise(__pyx_v_frequency, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4169, __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("pysndlib.generators.make_brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4173
 *     return BrownNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next brownian noise sample
 */

static PyObject *__pyx_pw_8pysndlib_10generators_447brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_brown_noise(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_brown_noise *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4181
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_brown_noise(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_BrownNoise *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4181, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4173
 *     return BrownNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next brownian noise sample
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_447brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_446brown_noise, "\n    returns the next brownian noise sample\n        \n    :param gen: brown_noise gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_447brown_noise = {"brown_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_447brown_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_446brown_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_447brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("brown_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4173, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4173, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "brown_noise") < 0)) __PYX_ERR(0, 4173, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4173, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("brown_noise", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4173, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_BrownNoise, 1, "gen", 0))) __PYX_ERR(0, 4173, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_446brown_noise(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_446brown_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_brown_noise __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("brown_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_brown_noise(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4173, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4173, __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("pysndlib.generators.brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4183
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_brown_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an brown_noise
 */

static PyObject *__pyx_pw_8pysndlib_10generators_449is_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_brown_noise(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4190
 *     :rtype: bool
 *     """
 *     return isinstance(gen, BrownNoise)             # <<<<<<<<<<<<<<
 * 
 * # --------------- green-noise ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_BrownNoise); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4183
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_brown_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an brown_noise
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_449is_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_448is_brown_noise, "\n    returns True if gen is an brown_noise\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_449is_brown_noise = {"is_brown_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_449is_brown_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_448is_brown_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_449is_brown_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_brown_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4183, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_brown_noise") < 0)) __PYX_ERR(0, 4183, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_brown_noise", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4183, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_448is_brown_noise(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_448is_brown_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_brown_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_brown_noise(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4183, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4183, __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("pysndlib.generators.is_brown_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4196
 * cdef class GreenNoise(CLMGenerator):
 * 
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):             # <<<<<<<<<<<<<<
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.low = low
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  PyObject *__pyx_v_low = 0;
  PyObject *__pyx_v_high = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,&__pyx_n_s_low,&__pyx_n_s_high,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_neg_1));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4196, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4196, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4196, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4196, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4196, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
    __pyx_v_low = values[2];
    __pyx_v_high = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4196, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise___init__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), __pyx_v_frequency, __pyx_v_amplitude, __pyx_v_low, __pyx_v_high);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise___init__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  double __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4197
 * 
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 *         self.gr = clm.make_rand(frequency, amplitude)             # <<<<<<<<<<<<<<
 *         self.low = low
 *         self.high = high
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_clm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_make_rand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_2, __pyx_v_frequency, __pyx_v_amplitude};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_4, 2+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4197, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4197, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4198
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.low = low             # <<<<<<<<<<<<<<
 *         self.high = high
 *         self.sum = .5 * (self.low + self.high)
 */
  __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_low); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4198, __pyx_L1_error)
  __pyx_v_self->low = __pyx_t_5;

  /* "pysndlib/generators.pyx":4199
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.low = low
 *         self.high = high             # <<<<<<<<<<<<<<
 *         self.sum = .5 * (self.low + self.high)
 *         self.prev = 0.
 */
  __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_high); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4199, __pyx_L1_error)
  __pyx_v_self->high = __pyx_t_5;

  /* "pysndlib/generators.pyx":4200
 *         self.low = low
 *         self.high = high
 *         self.sum = .5 * (self.low + self.high)             # <<<<<<<<<<<<<<
 *         self.prev = 0.
 *         self.sum = 0.
 */
  __pyx_v_self->sum = (.5 * (__pyx_v_self->low + __pyx_v_self->high));

  /* "pysndlib/generators.pyx":4201
 *         self.high = high
 *         self.sum = .5 * (self.low + self.high)
 *         self.prev = 0.             # <<<<<<<<<<<<<<
 *         self.sum = 0.
 * 
 */
  __pyx_v_self->prev = 0.;

  /* "pysndlib/generators.pyx":4202
 *         self.sum = .5 * (self.low + self.high)
 *         self.prev = 0.
 *         self.sum = 0.             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_v_self->sum = 0.;

  /* "pysndlib/generators.pyx":4196
 * cdef class GreenNoise(CLMGenerator):
 * 
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):             # <<<<<<<<<<<<<<
 *         self.gr = clm.make_rand(frequency, amplitude)
 *         self.low = low
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4205
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */

static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_10GreenNoise_next(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10GreenNoise_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_val;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_rand __pyx_t_8;
  int __pyx_t_9;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4205, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_10GreenNoise_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4205, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4205, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4206
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         val: cython.double = clm.rand(self.gr, fm)             # <<<<<<<<<<<<<<
 *         if val != self.prev:
 *             self.prev = val
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gr);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.sweep = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_rand(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4206, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_val = __pyx_t_7;

  /* "pysndlib/generators.pyx":4207
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:             # <<<<<<<<<<<<<<
 *             self.prev = val
 *             self.sum += val
 */
  __pyx_t_9 = (__pyx_v_val != __pyx_v_self->prev);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":4208
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 *             self.prev = val             # <<<<<<<<<<<<<<
 *             self.sum += val
 *             if not (self.low <= self.sum <= self.high):
 */
    __pyx_v_self->prev = __pyx_v_val;

    /* "pysndlib/generators.pyx":4209
 *         if val != self.prev:
 *             self.prev = val
 *             self.sum += val             # <<<<<<<<<<<<<<
 *             if not (self.low <= self.sum <= self.high):
 *                 self.sum -= 2*val
 */
    __pyx_v_self->sum = (__pyx_v_self->sum + __pyx_v_val);

    /* "pysndlib/generators.pyx":4210
 *             self.prev = val
 *             self.sum += val
 *             if not (self.low <= self.sum <= self.high):             # <<<<<<<<<<<<<<
 *                 self.sum -= 2*val
 *         return self.sum
 */
    __pyx_t_9 = (__pyx_v_self->low <= __pyx_v_self->sum);
    if (__pyx_t_9) {
      __pyx_t_9 = (__pyx_v_self->sum <= __pyx_v_self->high);
    }
    __pyx_t_10 = (!__pyx_t_9);
    if (__pyx_t_10) {

      /* "pysndlib/generators.pyx":4211
 *             self.sum += val
 *             if not (self.low <= self.sum <= self.high):
 *                 self.sum -= 2*val             # <<<<<<<<<<<<<<
 *         return self.sum
 * 
 */
      __pyx_v_self->sum = (__pyx_v_self->sum - (2.0 * __pyx_v_val));

      /* "pysndlib/generators.pyx":4210
 *             self.prev = val
 *             self.sum += val
 *             if not (self.low <= self.sum <= self.high):             # <<<<<<<<<<<<<<
 *                 self.sum -= 2*val
 *         return self.sum
 */
    }

    /* "pysndlib/generators.pyx":4207
 *     cpdef cython.double next(self, cython.double fm =0.0) :
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:             # <<<<<<<<<<<<<<
 *             self.prev = val
 *             self.sum += val
 */
  }

  /* "pysndlib/generators.pyx":4212
 *             if not (self.low <= self.sum <= self.high):
 *                 self.sum -= 2*val
 *         return self.sum             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_self->sum;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4205
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */

  /* 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("pysndlib.generators.GreenNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10GreenNoise_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10GreenNoise_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4205, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4205, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4205, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4205, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_2next(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_2next(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_GreenNoise->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4205, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4205, __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("pysndlib.generators.GreenNoise.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4214
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4214, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4214, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4214, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4214, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_4__call__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4__call__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4215
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoise *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4215, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4214
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":859
 * # --------------- green-noise ---------------- #
 * cdef class GreenNoise(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 859, __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("pysndlib.generators.GreenNoise.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 859, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":860
 * cdef class GreenNoise(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public cython.double prev
 *     cdef public cython.double sum
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 860, __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("pysndlib.generators.GreenNoise.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 860, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":861
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev             # <<<<<<<<<<<<<<
 *     cdef public cython.double sum
 *     cdef public clm.mus_any gr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_4prev___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4prev___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->prev); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 861, __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("pysndlib.generators.GreenNoise.prev.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_4prev_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_4prev_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 861, __pyx_L1_error)
  __pyx_v_self->prev = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.prev.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":862
 *     cdef public cython.double amplitude
 *     cdef public cython.double prev
 *     cdef public cython.double sum             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gr
 *     cdef public cython.double low
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_3sum___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_3sum___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 862, __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("pysndlib.generators.GreenNoise.sum.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_3sum_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 862, __pyx_L1_error)
  __pyx_v_self->sum = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.sum.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":863
 *     cdef public cython.double prev
 *     cdef public cython.double sum
 *     cdef public clm.mus_any gr             # <<<<<<<<<<<<<<
 *     cdef public cython.double low
 *     cdef public cython.double high
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_2gr___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gr);
  __pyx_r = ((PyObject *)__pyx_v_self->gr);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 863, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.gr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_4__del__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_2gr_4__del__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gr);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gr);
  __pyx_v_self->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":864
 *     cdef public cython.double sum
 *     cdef public clm.mus_any gr
 *     cdef public cython.double low             # <<<<<<<<<<<<<<
 *     cdef public cython.double high
 * #
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3low_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_3low_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_3low___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_3low___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->low); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 864, __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("pysndlib.generators.GreenNoise.low.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_3low_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_3low_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_3low_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_3low_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 864, __pyx_L1_error)
  __pyx_v_self->low = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.low.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":865
 *     cdef public clm.mus_any gr
 *     cdef public cython.double low
 *     cdef public cython.double high             # <<<<<<<<<<<<<<
 * #
 * # TODO: This is not working properly--------------- green-noise-interp ---------------- #
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_4high_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_4high_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_4high___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_4high___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->high); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 865, __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("pysndlib.generators.GreenNoise.high.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_4high_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_10GreenNoise_4high_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_4high_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_10GreenNoise_4high_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 865, __pyx_L1_error)
  __pyx_v_self->high = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.high.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10GreenNoise_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10GreenNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.frequency, self.gr, self.high, self.low, self.prev, self.sum)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->high); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->low); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->prev); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gr);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_self->gr))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.frequency, self.gr, self.high, self.low, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_7 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v__dict = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.frequency, self.gr, self.high, self.low, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_8 = (__pyx_v__dict != Py_None);
  if (__pyx_t_8) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_6));
    __pyx_t_6 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gr is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.frequency, self.gr, self.high, self.low, self.prev, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gr is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, None), state
 */
  /*else*/ {
    __pyx_t_8 = (((PyObject *)__pyx_v_self->gr) != Py_None);
    __pyx_v_use_setstate = __pyx_t_8;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gr is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gr is not None
 *     if use_setstate:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_GreenNoise); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_24494209);
    __Pyx_GIVEREF(__pyx_int_24494209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_24494209)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gr is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, None), state
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_GreenNoise); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_24494209);
    __Pyx_GIVEREF(__pyx_int_24494209);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_int_24494209)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_7 = 0;
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_10GreenNoise_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10GreenNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_10GreenNoise_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_10GreenNoise_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_10GreenNoise_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoise__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoise.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4217
 *         return self.next(fm)
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_451make_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_f_8pysndlib_10generators_make_green_noise(PyObject *__pyx_v_frequency, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_green_noise *__pyx_optional_args) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *__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("make_green_noise", 1);
  if (__pyx_optional_args) {
  }

  /* "pysndlib/generators.pyx":4219
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 4219, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_amplitude, __pyx_float_1_0) < 0) __PYX_ERR(0, 4219, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoise), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4217
 *         return self.next(fm)
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.make_green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_451make_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_450make_green_noise, "Returns a new green-noise (bounded brownian noise) generator.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_451make_green_noise = {"make_green_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_451make_green_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_450make_green_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_451make_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  PyObject *__pyx_v_low = 0;
  PyObject *__pyx_v_high = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_green_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,&__pyx_n_s_low,&__pyx_n_s_high,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__22);
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4217, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4217, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4217, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4217, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_green_noise") < 0)) __PYX_ERR(0, 4217, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
    __pyx_v_low = values[2];
    __pyx_v_high = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_green_noise", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4217, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_450make_green_noise(__pyx_self, __pyx_v_frequency, __pyx_v_amplitude, __pyx_v_low, __pyx_v_high);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_450make_green_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_green_noise __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_green_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_2.low = __pyx_v_low;
  __pyx_t_2.high = __pyx_v_high;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_green_noise(__pyx_v_frequency, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4217, __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("pysndlib.generators.make_green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4221
 *     return GreenNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next sample in a sequence of bounded brownian noise samples.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_453green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_green_noise(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_green_noise *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4230
 * 
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_green_noise(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoise *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4230, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4221
 *     return GreenNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next sample in a sequence of bounded brownian noise samples.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_453green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_452green_noise, "\n    returns the next sample in a sequence of bounded brownian noise samples.\n            \n    :param gen: green_noise gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_453green_noise = {"green_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_453green_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_452green_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_453green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("green_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4221, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4221, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "green_noise") < 0)) __PYX_ERR(0, 4221, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4221, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("green_noise", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4221, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_GreenNoise, 1, "gen", 0))) __PYX_ERR(0, 4221, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_452green_noise(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_452green_noise(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_green_noise __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("green_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_green_noise(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4221, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4221, __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("pysndlib.generators.green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4232
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise
 */

static PyObject *__pyx_pw_8pysndlib_10generators_455is_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_green_noise(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4239
 *     :rtype: bool
 *     """
 *     return isinstance(gen, GreenNoise)             # <<<<<<<<<<<<<<
 * 
 * # TODO: This is not working properly --------------- green-noise-interp ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_GreenNoise); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4232
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_455is_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_454is_green_noise, "\n    returns True if gen is an green_noise\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_455is_green_noise = {"is_green_noise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_455is_green_noise, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_454is_green_noise};
static PyObject *__pyx_pw_8pysndlib_10generators_455is_green_noise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_green_noise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4232, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_green_noise") < 0)) __PYX_ERR(0, 4232, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_green_noise", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4232, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_454is_green_noise(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_454is_green_noise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_green_noise", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_green_noise(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4232, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4232, __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("pysndlib.generators.is_green_noise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4243
 * # TODO: This is not working properly --------------- green-noise-interp ---------------- #
 * cdef class GreenNoiseInterp(CLMGenerator):
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):             # <<<<<<<<<<<<<<
 *         self.low = low
 *         self.high = high
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  PyObject *__pyx_v_low = 0;
  PyObject *__pyx_v_high = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,&__pyx_n_s_low,&__pyx_n_s_high,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_neg_1));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_1));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4243, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4243, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4243, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4243, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4243, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
    __pyx_v_low = values[2];
    __pyx_v_high = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4243, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp___init__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), __pyx_v_frequency, __pyx_v_amplitude, __pyx_v_low, __pyx_v_high);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp___init__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  double __pyx_t_4;
  double __pyx_t_5;
  double __pyx_t_6;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  struct __pyx_opt_args_8pysndlib_3clm_random __pyx_t_11;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4244
 * cdef class GreenNoiseInterp(CLMGenerator):
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 *         self.low = low             # <<<<<<<<<<<<<<
 *         self.high = high
 *         self.amplitude = amplitude
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_low); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4244, __pyx_L1_error)
  __pyx_v_self->low = __pyx_t_1;

  /* "pysndlib/generators.pyx":4245
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):
 *         self.low = low
 *         self.high = high             # <<<<<<<<<<<<<<
 *         self.amplitude = amplitude
 *         self.sum = .5 * (self.low + self.high)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_high); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4245, __pyx_L1_error)
  __pyx_v_self->high = __pyx_t_1;

  /* "pysndlib/generators.pyx":4246
 *         self.low = low
 *         self.high = high
 *         self.amplitude = amplitude             # <<<<<<<<<<<<<<
 *         self.sum = .5 * (self.low + self.high)
 *         self.dv = 1.0 / (ceil(clm.get_srate() / max(1.0, self.frequency)))
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_amplitude); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4246, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* "pysndlib/generators.pyx":4247
 *         self.high = high
 *         self.amplitude = amplitude
 *         self.sum = .5 * (self.low + self.high)             # <<<<<<<<<<<<<<
 *         self.dv = 1.0 / (ceil(clm.get_srate() / max(1.0, self.frequency)))
 *         self.frequency = clm.hz2radians(frequency)
 */
  __pyx_v_self->sum = (.5 * (__pyx_v_self->low + __pyx_v_self->high));

  /* "pysndlib/generators.pyx":4248
 *         self.amplitude = amplitude
 *         self.sum = .5 * (self.low + self.high)
 *         self.dv = 1.0 / (ceil(clm.get_srate() / max(1.0, self.frequency)))             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.incr = clm.random(self.amplitude) * self.dv
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ceil); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_get_srate(0, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4248, __pyx_L1_error)
  __pyx_t_4 = __pyx_v_self->frequency;
  __pyx_t_5 = 1.0;
  __pyx_t_7 = (__pyx_t_4 > __pyx_t_5);
  if (__pyx_t_7) {
    __pyx_t_6 = __pyx_t_4;
  } else {
    __pyx_t_6 = __pyx_t_5;
  }
  __pyx_t_4 = __pyx_t_6;
  if (unlikely(__pyx_t_4 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4248, __pyx_L1_error)
  }
  __pyx_t_8 = PyFloat_FromDouble((__pyx_t_1 / __pyx_t_4)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = NULL;
  __pyx_t_10 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_10 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_8};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_10, 1+__pyx_t_10);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_t_3 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4248, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_self->dv = __pyx_t_4;

  /* "pysndlib/generators.pyx":4249
 *         self.sum = .5 * (self.low + self.high)
 *         self.dv = 1.0 / (ceil(clm.get_srate() / max(1.0, self.frequency)))
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 *         self.incr = clm.random(self.amplitude) * self.dv
 *         self.angle = 0.0
 */
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4249, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_4, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4249, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":4250
 *         self.dv = 1.0 / (ceil(clm.get_srate() / max(1.0, self.frequency)))
 *         self.frequency = clm.hz2radians(frequency)
 *         self.incr = clm.random(self.amplitude) * self.dv             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 */
  __pyx_t_11.__pyx_n = 1;
  __pyx_t_11.x = __pyx_v_self->amplitude;
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_random(0, &__pyx_t_11); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4250, __pyx_L1_error)
  __pyx_v_self->incr = (__pyx_t_1 * __pyx_v_self->dv);

  /* "pysndlib/generators.pyx":4251
 *         self.frequency = clm.hz2radians(frequency)
 *         self.incr = clm.random(self.amplitude) * self.dv
 *         self.angle = 0.0             # <<<<<<<<<<<<<<
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 */
  __pyx_v_self->angle = 0.0;

  /* "pysndlib/generators.pyx":4243
 * # TODO: This is not working properly --------------- green-noise-interp ---------------- #
 * cdef class GreenNoiseInterp(CLMGenerator):
 *     def __init__(self, frequency, amplitude=1.0, low=-1, high=1):             # <<<<<<<<<<<<<<
 *         self.low = low
 *         self.high = high
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4254
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 *     cpdef cython.double next(self, cython.double fm = 0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 */

static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_16GreenNoiseInterp_next(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_16GreenNoiseInterp_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_v_val;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  int __pyx_t_9;
  struct __pyx_opt_args_8pysndlib_3clm_random __pyx_t_10;
  double __pyx_t_11;
  double __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4254, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4254, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4256
 *     cpdef cython.double next(self, cython.double fm = 0.0):
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):             # <<<<<<<<<<<<<<
 *             val = clm.random(self.amplitude)
 *             self.angle = self.angle % TWO_PI
 */
  __pyx_t_8 = (0.0 <= __pyx_v_self->angle);
  if (__pyx_t_8) {
    __pyx_t_8 = (__pyx_v_self->angle <= __pyx_v_8pysndlib_10generators_TWO_PI);
  }
  __pyx_t_9 = (!__pyx_t_8);
  if (__pyx_t_9) {

    /* "pysndlib/generators.pyx":4257
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 *             val = clm.random(self.amplitude)             # <<<<<<<<<<<<<<
 *             self.angle = self.angle % TWO_PI
 *             if self.angle < 0.0:
 */
    __pyx_t_10.__pyx_n = 1;
    __pyx_t_10.x = __pyx_v_self->amplitude;
    __pyx_t_7 = __pyx_f_8pysndlib_3clm_random(0, &__pyx_t_10); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4257, __pyx_L1_error)
    __pyx_v_val = __pyx_t_7;

    /* "pysndlib/generators.pyx":4258
 *         if not (0.0 <= self.angle <= TWO_PI):
 *             val = clm.random(self.amplitude)
 *             self.angle = self.angle % TWO_PI             # <<<<<<<<<<<<<<
 *             if self.angle < 0.0:
 *                 self.angle += TWO_PI
 */
    if (unlikely(__pyx_v_8pysndlib_10generators_TWO_PI == 0)) {
      PyErr_SetString(PyExc_ZeroDivisionError, "float divmod()");
      __PYX_ERR(0, 4258, __pyx_L1_error)
    }
    __pyx_v_self->angle = __Pyx_mod_double(__pyx_v_self->angle, __pyx_v_8pysndlib_10generators_TWO_PI);

    /* "pysndlib/generators.pyx":4259
 *             val = clm.random(self.amplitude)
 *             self.angle = self.angle % TWO_PI
 *             if self.angle < 0.0:             # <<<<<<<<<<<<<<
 *                 self.angle += TWO_PI
 *             if not (self.low <= (self.sum+val) <= self.high):
 */
    __pyx_t_9 = (__pyx_v_self->angle < 0.0);
    if (__pyx_t_9) {

      /* "pysndlib/generators.pyx":4260
 *             self.angle = self.angle % TWO_PI
 *             if self.angle < 0.0:
 *                 self.angle += TWO_PI             # <<<<<<<<<<<<<<
 *             if not (self.low <= (self.sum+val) <= self.high):
 *                 val = min(self.high-self.sum, max(self.low-self.sum, -val))
 */
      __pyx_v_self->angle = (__pyx_v_self->angle + __pyx_v_8pysndlib_10generators_TWO_PI);

      /* "pysndlib/generators.pyx":4259
 *             val = clm.random(self.amplitude)
 *             self.angle = self.angle % TWO_PI
 *             if self.angle < 0.0:             # <<<<<<<<<<<<<<
 *                 self.angle += TWO_PI
 *             if not (self.low <= (self.sum+val) <= self.high):
 */
    }

    /* "pysndlib/generators.pyx":4261
 *             if self.angle < 0.0:
 *                 self.angle += TWO_PI
 *             if not (self.low <= (self.sum+val) <= self.high):             # <<<<<<<<<<<<<<
 *                 val = min(self.high-self.sum, max(self.low-self.sum, -val))
 *             self.incr = self.dv * val
 */
    __pyx_t_7 = (__pyx_v_self->sum + __pyx_v_val);
    __pyx_t_9 = (__pyx_v_self->low <= __pyx_t_7);
    if (__pyx_t_9) {
      __pyx_t_9 = (__pyx_t_7 <= __pyx_v_self->high);
    }
    __pyx_t_8 = (!__pyx_t_9);
    if (__pyx_t_8) {

      /* "pysndlib/generators.pyx":4262
 *                 self.angle += TWO_PI
 *             if not (self.low <= (self.sum+val) <= self.high):
 *                 val = min(self.high-self.sum, max(self.low-self.sum, -val))             # <<<<<<<<<<<<<<
 *             self.incr = self.dv * val
 * 
 */
      __pyx_t_7 = (-__pyx_v_val);
      __pyx_t_11 = (__pyx_v_self->low - __pyx_v_self->sum);
      __pyx_t_8 = (__pyx_t_7 > __pyx_t_11);
      if (__pyx_t_8) {
        __pyx_t_12 = __pyx_t_7;
      } else {
        __pyx_t_12 = __pyx_t_11;
      }
      __pyx_t_7 = __pyx_t_12;
      __pyx_t_12 = (__pyx_v_self->high - __pyx_v_self->sum);
      __pyx_t_8 = (__pyx_t_7 < __pyx_t_12);
      if (__pyx_t_8) {
        __pyx_t_11 = __pyx_t_7;
      } else {
        __pyx_t_11 = __pyx_t_12;
      }
      __pyx_v_val = __pyx_t_11;

      /* "pysndlib/generators.pyx":4261
 *             if self.angle < 0.0:
 *                 self.angle += TWO_PI
 *             if not (self.low <= (self.sum+val) <= self.high):             # <<<<<<<<<<<<<<
 *                 val = min(self.high-self.sum, max(self.low-self.sum, -val))
 *             self.incr = self.dv * val
 */
    }

    /* "pysndlib/generators.pyx":4263
 *             if not (self.low <= (self.sum+val) <= self.high):
 *                 val = min(self.high-self.sum, max(self.low-self.sum, -val))
 *             self.incr = self.dv * val             # <<<<<<<<<<<<<<
 * 
 *         self.angle += fm + self.frequency
 */
    __pyx_v_self->incr = (__pyx_v_self->dv * __pyx_v_val);

    /* "pysndlib/generators.pyx":4256
 *     cpdef cython.double next(self, cython.double fm = 0.0):
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):             # <<<<<<<<<<<<<<
 *             val = clm.random(self.amplitude)
 *             self.angle = self.angle % TWO_PI
 */
  }

  /* "pysndlib/generators.pyx":4265
 *             self.incr = self.dv * val
 * 
 *         self.angle += fm + self.frequency             # <<<<<<<<<<<<<<
 *         self.sum += self.incr
 *         return self.sum
 */
  __pyx_v_self->angle = (__pyx_v_self->angle + (__pyx_v_fm + __pyx_v_self->frequency));

  /* "pysndlib/generators.pyx":4266
 * 
 *         self.angle += fm + self.frequency
 *         self.sum += self.incr             # <<<<<<<<<<<<<<
 *         return self.sum
 * 
 */
  __pyx_v_self->sum = (__pyx_v_self->sum + __pyx_v_self->incr);

  /* "pysndlib/generators.pyx":4267
 *         self.angle += fm + self.frequency
 *         self.sum += self.incr
 *         return self.sum             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 */
  __pyx_r = __pyx_v_self->sum;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4254
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 *     cpdef cython.double next(self, cython.double fm = 0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 */

  /* 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("pysndlib.generators.GreenNoiseInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4254, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4254, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4254, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4254, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2next(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2next(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_GreenNoiseInterp->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4254, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4254, __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("pysndlib.generators.GreenNoiseInterp.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4269
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4269, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4269, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4269, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4269, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4__call__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4__call__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4270
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4270, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4269
 *         return self.sum
 * 
 *     def __call__(self, fm: cython.double =0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":869
 * # TODO: This is not working properly--------------- green-noise-interp ---------------- #
 * cdef class GreenNoiseInterp(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 869, __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("pysndlib.generators.GreenNoiseInterp.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 869, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":870
 * cdef class GreenNoiseInterp(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude             # <<<<<<<<<<<<<<
 *     cdef public cython.double sum
 *     cdef public cython.double low
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 870, __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("pysndlib.generators.GreenNoiseInterp.amplitude.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 870, __pyx_L1_error)
  __pyx_v_self->amplitude = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.amplitude.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":871
 *     cdef public cython.double frequency
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum             # <<<<<<<<<<<<<<
 *     cdef public cython.double low
 *     cdef public cython.double high
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 871, __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("pysndlib.generators.GreenNoiseInterp.sum.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 871, __pyx_L1_error)
  __pyx_v_self->sum = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.sum.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":872
 *     cdef public cython.double amplitude
 *     cdef public cython.double sum
 *     cdef public cython.double low             # <<<<<<<<<<<<<<
 *     cdef public cython.double high
 *     cdef public cython.double dv
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->low); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 872, __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("pysndlib.generators.GreenNoiseInterp.low.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_3low_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 872, __pyx_L1_error)
  __pyx_v_self->low = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.low.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":873
 *     cdef public cython.double sum
 *     cdef public cython.double low
 *     cdef public cython.double high             # <<<<<<<<<<<<<<
 *     cdef public cython.double dv
 *     cdef public cython.double incr
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->high); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 873, __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("pysndlib.generators.GreenNoiseInterp.high.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4high_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 873, __pyx_L1_error)
  __pyx_v_self->high = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.high.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":874
 *     cdef public cython.double low
 *     cdef public cython.double high
 *     cdef public cython.double dv             # <<<<<<<<<<<<<<
 *     cdef public cython.double incr
 *     cdef public cython.double angle
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->dv); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 874, __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("pysndlib.generators.GreenNoiseInterp.dv.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_2dv_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 874, __pyx_L1_error)
  __pyx_v_self->dv = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.dv.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":875
 *     cdef public cython.double high
 *     cdef public cython.double dv
 *     cdef public cython.double incr             # <<<<<<<<<<<<<<
 *     cdef public cython.double angle
 * #
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->incr); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 875, __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("pysndlib.generators.GreenNoiseInterp.incr.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_4incr_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 875, __pyx_L1_error)
  __pyx_v_self->incr = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.incr.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":876
 *     cdef public cython.double dv
 *     cdef public cython.double incr
 *     cdef public cython.double angle             # <<<<<<<<<<<<<<
 * #
 * #
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle___get__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle___get__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 876, __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("pysndlib.generators.GreenNoiseInterp.angle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle_2__set__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_5angle_2__set__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 876, __pyx_L1_error)
  __pyx_v_self->angle = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.angle.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.angle, self.dv, self.frequency, self.high, self.incr, self.low, self.sum)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->amplitude); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->angle); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->dv); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->high); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_v_self->incr); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_self->low); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyTuple_New(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 6, __pyx_t_7)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 7, __pyx_t_8)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.amplitude, self.angle, self.dv, self.frequency, self.high, self.incr, self.low, self.sum)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_9 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_v__dict = __pyx_t_9;
  __pyx_t_9 = 0;

  /* "(tree fragment)":7
 *     state = (self.amplitude, self.angle, self.dv, self.frequency, self.high, self.incr, self.low, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_10 = (__pyx_v__dict != Py_None);
  if (__pyx_t_10) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_8));
    __pyx_t_8 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.amplitude, self.angle, self.dv, self.frequency, self.high, self.incr, self.low, self.sum)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_pyx_unpickle_GreenNoiseInterp); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246844032);
    __Pyx_GIVEREF(__pyx_int_246844032);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_246844032)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_9)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_8 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, None), state
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pyx_unpickle_GreenNoiseInterp); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_246844032);
    __Pyx_GIVEREF(__pyx_int_246844032);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_int_246844032)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_9);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_7 = 0;
    __pyx_t_9 = 0;
    __pyx_r = __pyx_t_8;
    __pyx_t_8 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_16GreenNoiseInterp_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoiseInterp__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.GreenNoiseInterp.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4273
 * 
 * 
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_457make_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_f_8pysndlib_10generators_make_green_noise_interp(PyObject *__pyx_v_frequency, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_green_noise_interp *__pyx_optional_args) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__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("make_green_noise_interp", 1);
  if (__pyx_optional_args) {
  }

  /* "pysndlib/generators.pyx":4275
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)             # <<<<<<<<<<<<<<
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 4275, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_amplitude, __pyx_float_1_0) < 0) __PYX_ERR(0, 4275, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp), __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_t_3);
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4273
 * 
 * 
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.make_green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_457make_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_456make_green_noise_interp, "Returns a new green-noise (bounded brownian noise) generator.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_457make_green_noise_interp = {"make_green_noise_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_457make_green_noise_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_456make_green_noise_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_457make_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_amplitude = 0;
  PyObject *__pyx_v_low = 0;
  PyObject *__pyx_v_high = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_green_noise_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_amplitude,&__pyx_n_s_low,&__pyx_n_s_high,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(__pyx_k__23);
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4273, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_amplitude);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4273, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4273, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4273, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_green_noise_interp") < 0)) __PYX_ERR(0, 4273, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_amplitude = values[1];
    __pyx_v_low = values[2];
    __pyx_v_high = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_green_noise_interp", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4273, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_456make_green_noise_interp(__pyx_self, __pyx_v_frequency, __pyx_v_amplitude, __pyx_v_low, __pyx_v_high);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_456make_green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_amplitude, PyObject *__pyx_v_low, PyObject *__pyx_v_high) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_green_noise_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_green_noise_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.amplitude = __pyx_v_amplitude;
  __pyx_t_2.low = __pyx_v_low;
  __pyx_t_2.high = __pyx_v_high;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_green_noise_interp(__pyx_v_frequency, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4273, __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("pysndlib.generators.make_green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4277
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next sample in a sequence of interpolated bounded brownian noise samples.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_459green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_green_noise_interp(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_green_noise_interp *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("green_noise_interp", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4285
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_green_noise_interp(gen):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4285, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4277
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next sample in a sequence of interpolated bounded brownian noise samples.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_459green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_458green_noise_interp, "\n    Returns the next sample in a sequence of interpolated bounded brownian noise samples.\n    \n    :param gen: green_noise_interp gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_459green_noise_interp = {"green_noise_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_459green_noise_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_458green_noise_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_459green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("green_noise_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4277, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4277, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "green_noise_interp") < 0)) __PYX_ERR(0, 4277, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4277, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("green_noise_interp", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4277, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp, 1, "gen", 0))) __PYX_ERR(0, 4277, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_458green_noise_interp(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_458green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_green_noise_interp __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("green_noise_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_green_noise_interp(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4277, __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("pysndlib.generators.green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4287
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise_interp
 */

static PyObject *__pyx_pw_8pysndlib_10generators_461is_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_green_noise_interp(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4294
 *     :rtype: bool
 *     """
 *     return isinstance(gen, GreenNoiseInterp)             # <<<<<<<<<<<<<<
 * 
 * # --------------- moving-sum ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4287
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise_interp
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_461is_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_460is_green_noise_interp, "\n    returns True if gen is an green_noise_interp\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_461is_green_noise_interp = {"is_green_noise_interp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_461is_green_noise_interp, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_460is_green_noise_interp};
static PyObject *__pyx_pw_8pysndlib_10generators_461is_green_noise_interp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_green_noise_interp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4287, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_green_noise_interp") < 0)) __PYX_ERR(0, 4287, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_green_noise_interp", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4287, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_460is_green_noise_interp(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_460is_green_noise_interp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_green_noise_interp", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_green_noise_interp(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4287, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4287, __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("pysndlib.generators.is_green_noise_interp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4300
 * cdef class MovingSum(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingSum_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingSum_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4300, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4300, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4300, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum___init__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingSum___init__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4301
 * 
 *     def __init__(self, n=128):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_moving_average(self.n)
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4301, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4302
 *     def __init__(self, n=128):
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4302, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4302, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4300
 * cdef class MovingSum(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4304
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9MovingSum_next(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingSum_next *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  double __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9MovingSum_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4304, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4304, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4304, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4305
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         return clm.moving_average(self.gen, fabs(insig))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_fabs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4305, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_t_7, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4305, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_8;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4304
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 */

  /* 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("pysndlib.generators.MovingSum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingSum_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingSum_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4304, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4304, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4304, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4304, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_2next(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_2next(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_MovingSum->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4304, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4304, __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("pysndlib.generators.MovingSum.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4307
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4307, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4307, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4307, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4307, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_4__call__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4308
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingSum *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4308, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4308, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4307
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":883
 * 
 * cdef class MovingSum(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_1n___get__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 883, __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("pysndlib.generators.MovingSum.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingSum_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingSum_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingSum_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 883, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":884
 * cdef class MovingSum(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_3gen___get__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 884, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingSum_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingSum_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingSum_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_MovingSum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, None), state
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_MovingSum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingSum_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingSum_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingSum_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingSum_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingSum_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingSum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingSum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4311
 * 
 * 
 * cpdef MovingSum make_moving_sum(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_463make_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_f_8pysndlib_10generators_make_moving_sum(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_sum *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_sum", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4315
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 *     """
 *     return MovingSum(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingSum), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4311
 * 
 * 
 * cpdef MovingSum make_moving_sum(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_463make_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_462make_moving_sum, " \n    returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_463make_moving_sum = {"make_moving_sum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_463make_moving_sum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_462make_moving_sum};
static PyObject *__pyx_pw_8pysndlib_10generators_463make_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_moving_sum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4311, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_moving_sum") < 0)) __PYX_ERR(0, 4311, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_moving_sum", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4311, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_462make_moving_sum(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_462make_moving_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_moving_sum __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_sum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_moving_sum(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4311, __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("pysndlib.generators.make_moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4317
 *     return MovingSum(n)
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the absolute values in a moving window over the last n inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_465moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_sum(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_sum *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4324
 *     :rtype: float
 *     """
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_moving_sum(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingSum *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4324, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4317
 *     return MovingSum(n)
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the absolute values in a moving window over the last n inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_465moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_464moving_sum, "\n    returns the sum of the absolute values in a moving window over the last n inputs.\n    :param gen: moving_sum gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_465moving_sum = {"moving_sum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_465moving_sum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_464moving_sum};
static PyObject *__pyx_pw_8pysndlib_10generators_465moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("moving_sum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4317, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4317, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "moving_sum") < 0)) __PYX_ERR(0, 4317, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_MovingSum *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4317, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("moving_sum", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4317, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_MovingSum, 1, "gen", 0))) __PYX_ERR(0, 4317, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_464moving_sum(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_464moving_sum(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_moving_sum __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("moving_sum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_moving_sum(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4317, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4317, __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("pysndlib.generators.moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4326
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_sum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_sum
 */

static PyObject *__pyx_pw_8pysndlib_10generators_467is_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_sum(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4333
 *     :rtype: bool
 *     """
 *     return isinstance(gen, MovingSum)             # <<<<<<<<<<<<<<
 * #
 * # --------------- moving-variance ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_MovingSum); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4326
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_sum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_sum
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_467is_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_466is_moving_sum, "\n    returns True if gen is an moving_sum\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_467is_moving_sum = {"is_moving_sum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_467is_moving_sum, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_466is_moving_sum};
static PyObject *__pyx_pw_8pysndlib_10generators_467is_moving_sum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_moving_sum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4326, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_moving_sum") < 0)) __PYX_ERR(0, 4326, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_moving_sum", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4326, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_466is_moving_sum(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_466is_moving_sum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_moving_sum", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_moving_sum(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4326, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4326, __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("pysndlib.generators.is_moving_sum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4338
 * 
 * cdef class MovingVariance(CLMGenerator):
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen1 = clm.make_moving_average(self.n)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4338, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4338, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4338, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance___init__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance___init__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4339
 * cdef class MovingVariance(CLMGenerator):
 *     def __init__(self, n=128):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.gen1 = clm.make_moving_average(self.n)
 *         self.gen1.mus_increment = 1.0
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4339, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4340
 *     def __init__(self, n=128):
 *         self.n = n
 *         self.gen1 = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 *         self.gen1.mus_increment = 1.0
 *         self.gen2 = clm.make_moving_average(self.n)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4340, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4340, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen1);
  __pyx_v_self->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4341
 *         self.n = n
 *         self.gen1 = clm.make_moving_average(self.n)
 *         self.gen1.mus_increment = 1.0             # <<<<<<<<<<<<<<
 *         self.gen2 = clm.make_moving_average(self.n)
 *         self.gen2.mus_increment = 1.0
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen1), __pyx_n_s_mus_increment, __pyx_float_1_0) < 0) __PYX_ERR(0, 4341, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4342
 *         self.gen1 = clm.make_moving_average(self.n)
 *         self.gen1.mus_increment = 1.0
 *         self.gen2 = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 *         self.gen2.mus_increment = 1.0
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_4};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4342, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen2);
  __pyx_v_self->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4343
 *         self.gen1.mus_increment = 1.0
 *         self.gen2 = clm.make_moving_average(self.n)
 *         self.gen2.mus_increment = 1.0             # <<<<<<<<<<<<<<
 * 
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->gen2), __pyx_n_s_mus_increment, __pyx_float_1_0) < 0) __PYX_ERR(0, 4343, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4338
 * 
 * cdef class MovingVariance(CLMGenerator):
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen1 = clm.make_moving_average(self.n)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4346
 * 
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_14MovingVariance_next(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_14MovingVariance_next *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.0);
  double __pyx_v_x1;
  double __pyx_v_x2;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  long __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_14MovingVariance_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4346, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4346, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4347
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)             # <<<<<<<<<<<<<<
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 *         return ((self.n*x2) - (x1*x1)) / (self.n * (self.n - 1))
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen1);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_v_insig, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_x1 = __pyx_t_7;

  /* "pysndlib/generators.pyx":4348
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)             # <<<<<<<<<<<<<<
 *         return ((self.n*x2) - (x1*x1)) / (self.n * (self.n - 1))
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen2);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), (__pyx_v_insig * __pyx_v_insig), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4348, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_x2 = __pyx_t_7;

  /* "pysndlib/generators.pyx":4349
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 *         return ((self.n*x2) - (x1*x1)) / (self.n * (self.n - 1))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  __pyx_t_7 = ((__pyx_v_self->n * __pyx_v_x2) - (__pyx_v_x1 * __pyx_v_x1));
  __pyx_t_8 = (__pyx_v_self->n * (__pyx_v_self->n - 1));
  if (unlikely(__pyx_t_8 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4349, __pyx_L1_error)
  }
  __pyx_r = (__pyx_t_7 / ((double)__pyx_t_8));
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4346
 * 
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 */

  /* 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("pysndlib.generators.MovingVariance.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14MovingVariance_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14MovingVariance_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4346, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4346, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4346, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4346, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_2next(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_2next(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_MovingVariance->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4346, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4346, __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("pysndlib.generators.MovingVariance.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4351
 *         return ((self.n*x2) - (x1*x1)) / (self.n * (self.n - 1))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4351, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4351, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4351, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4351, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4__call__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4352
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingVariance *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4352, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4351
 *         return ((self.n*x2) - (x1*x1)) / (self.n * (self.n - 1))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":892
 * 
 * cdef class MovingVariance(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen1
 *     cdef public clm.mus_any gen2
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_1n___get__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 892, __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("pysndlib.generators.MovingVariance.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 892, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":893
 * cdef class MovingVariance(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen1             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen2
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1___get__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen1);
  __pyx_r = ((PyObject *)__pyx_v_self->gen1);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 893, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen1);
  __pyx_v_self->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.gen1.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_4__del__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen1_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen1);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen1);
  __pyx_v_self->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":894
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen1
 *     cdef public clm.mus_any gen2             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2___get__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2___get__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen2);
  __pyx_r = ((PyObject *)__pyx_v_self->gen2);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 894, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen2);
  __pyx_v_self->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.gen2.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_4__del__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_14MovingVariance_4gen2_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen2);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen2);
  __pyx_v_self->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14MovingVariance_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14MovingVariance_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.gen1, self.gen2, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen1);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->gen1))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen2);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->gen2))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.gen1, self.gen2, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.gen1, self.gen2, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen1 is not None or self.gen2 is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.gen1, self.gen2, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen1 is not None or self.gen2 is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->gen1) != Py_None);
    if (!__pyx_t_4) {
    } else {
      __pyx_t_3 = __pyx_t_4;
      goto __pyx_L4_bool_binop_done;
    }
    __pyx_t_4 = (((PyObject *)__pyx_v_self->gen2) != Py_None);
    __pyx_t_3 = __pyx_t_4;
    __pyx_L4_bool_binop_done:;
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen1 is not None or self.gen2 is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen1 is not None or self.gen2 is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_MovingVariance); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_175203516);
    __Pyx_GIVEREF(__pyx_int_175203516);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_175203516)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen1 is not None or self.gen2 is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, None), state
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_MovingVariance); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_175203516);
    __Pyx_GIVEREF(__pyx_int_175203516);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_175203516)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_14MovingVariance_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14MovingVariance_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_14MovingVariance_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_14MovingVariance_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_14MovingVariance_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingVariance__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingVariance.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4355
 * 
 * 
 * cpdef MovingVariance make_moving_variance(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_469make_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_f_8pysndlib_10generators_make_moving_variance(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_variance *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_variance", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4359
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 *     """
 *     return MovingVariance(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingVariance), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4355
 * 
 * 
 * cpdef MovingVariance make_moving_variance(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_469make_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_468make_moving_variance, " \n    returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_469make_moving_variance = {"make_moving_variance", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_469make_moving_variance, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_468make_moving_variance};
static PyObject *__pyx_pw_8pysndlib_10generators_469make_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_moving_variance (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4355, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_moving_variance") < 0)) __PYX_ERR(0, 4355, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_moving_variance", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4355, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_468make_moving_variance(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_468make_moving_variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_moving_variance __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_variance", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_moving_variance(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4355, __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("pysndlib.generators.make_moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4361
 *     return MovingVariance(n)
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the variance of the values in a moving window over the last n inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_471moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_variance(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_variance *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4368
 *     :rtype: float
 *     """
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_moving_variance(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingVariance *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4368, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4361
 *     return MovingVariance(n)
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the variance of the values in a moving window over the last n inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_471moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_470moving_variance, "\n    returns the variance of the values in a moving window over the last n inputs.\n    :param gen: moving_variance gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_471moving_variance = {"moving_variance", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_471moving_variance, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_470moving_variance};
static PyObject *__pyx_pw_8pysndlib_10generators_471moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("moving_variance (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4361, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4361, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "moving_variance") < 0)) __PYX_ERR(0, 4361, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4361, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("moving_variance", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4361, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_MovingVariance, 1, "gen", 0))) __PYX_ERR(0, 4361, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_470moving_variance(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_470moving_variance(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_moving_variance __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("moving_variance", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_moving_variance(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4361, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4361, __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("pysndlib.generators.moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4370
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_variance(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_variance
 */

static PyObject *__pyx_pw_8pysndlib_10generators_473is_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_variance(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4378
 *     """
 * 
 *     return isinstance(gen, MovingVariance)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_MovingVariance); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4370
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_variance(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_variance
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_473is_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_472is_moving_variance, "\n    returns True if gen is an moving_variance\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_473is_moving_variance = {"is_moving_variance", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_473is_moving_variance, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_472is_moving_variance};
static PyObject *__pyx_pw_8pysndlib_10generators_473is_moving_variance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_moving_variance (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4370, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_moving_variance") < 0)) __PYX_ERR(0, 4370, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_moving_variance", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4370, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_472is_moving_variance(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_472is_moving_variance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_moving_variance", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_moving_variance(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4370, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4370, __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("pysndlib.generators.is_moving_variance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4386
 * cdef class MovingRMS(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4386, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4386, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4386, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS___init__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingRMS___init__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4387
 * 
 *     def __init__(self, n=128):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_moving_average(self.n)
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4387, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4388
 *     def __init__(self, n=128):
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4388, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4386
 * cdef class MovingRMS(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_moving_average(self.n)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4390
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9MovingRMS_next(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingRMS_next *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4390, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9MovingRMS_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4390, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4390, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4390, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4391
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         return sqrt(clm.moving_average(self.gen, insig*insig))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_4), (__pyx_v_insig * __pyx_v_insig), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4391, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4391, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4390
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 */

  /* 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("pysndlib.generators.MovingRMS.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingRMS_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingRMS_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4390, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4390, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4390, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4390, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_2next(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_2next(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_MovingRMS->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4390, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4390, __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("pysndlib.generators.MovingRMS.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4393
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4393, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4393, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4393, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4393, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_4__call__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4394
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4394, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4394, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4393
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":902
 * 
 * cdef class MovingRMS(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_1n___get__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_1n___get__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 902, __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("pysndlib.generators.MovingRMS.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingRMS_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 902, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":903
 * cdef class MovingRMS(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_3gen___get__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 903, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingRMS_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingRMS_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingRMS_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_MovingRMS); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, None), state
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_MovingRMS); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingRMS_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingRMS_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingRMS_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingRMS_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingRMS_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingRMS__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingRMS.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4397
 * 
 * 
 * cpdef MovingRMS make_moving_rms(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-rms generator that produces
 */

static PyObject *__pyx_pw_8pysndlib_10generators_475make_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_f_8pysndlib_10generators_make_moving_rms(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_rms *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_rms", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4402
 *     the rms of the values in a window over the last n inputs.
 *     """
 *     return MovingRMS(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4397
 * 
 * 
 * cpdef MovingRMS make_moving_rms(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-rms generator that produces
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_475make_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_474make_moving_rms, "\n    returns a moving-rms generator that produces\n    the rms of the values in a window over the last n inputs.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_475make_moving_rms = {"make_moving_rms", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_475make_moving_rms, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_474make_moving_rms};
static PyObject *__pyx_pw_8pysndlib_10generators_475make_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_moving_rms (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4397, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_moving_rms") < 0)) __PYX_ERR(0, 4397, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_moving_rms", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4397, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_474make_moving_rms(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_474make_moving_rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_moving_rms __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_rms", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_moving_rms(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4397, __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("pysndlib.generators.make_moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4404
 *     return MovingRMS(n)
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the rms of the values in a window over the last n inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_477moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_rms(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_rms *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4411
 *     :rtype: float
 *     """
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_moving_rms(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4411, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4404
 *     return MovingRMS(n)
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the rms of the values in a window over the last n inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_477moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_476moving_rms, "\n    returns the rms of the values in a window over the last n inputs.\n    :param gen: moving_rms gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_477moving_rms = {"moving_rms", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_477moving_rms, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_476moving_rms};
static PyObject *__pyx_pw_8pysndlib_10generators_477moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("moving_rms (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4404, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4404, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "moving_rms") < 0)) __PYX_ERR(0, 4404, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4404, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("moving_rms", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4404, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_MovingRMS, 1, "gen", 0))) __PYX_ERR(0, 4404, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_476moving_rms(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_476moving_rms(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_moving_rms __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("moving_rms", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_moving_rms(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4404, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4404, __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("pysndlib.generators.moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4413
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_rms(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_rms
 */

static PyObject *__pyx_pw_8pysndlib_10generators_479is_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_rms(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4420
 *     :rtype: bool
 *     """
 *     return isinstance(gen, MovingRMS)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_MovingRMS); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4413
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_rms(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_rms
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_479is_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_478is_moving_rms, "\n    returns True if gen is an moving_rms\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_479is_moving_rms = {"is_moving_rms", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_479is_moving_rms, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_478is_moving_rms};
static PyObject *__pyx_pw_8pysndlib_10generators_479is_moving_rms(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_moving_rms (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4413, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_moving_rms") < 0)) __PYX_ERR(0, 4413, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_moving_rms", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4413, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_478is_moving_rms(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_478is_moving_rms(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_moving_rms", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_moving_rms(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4413, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4413, __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("pysndlib.generators.is_moving_rms", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4426
 * cdef class MovingLength(MovingRMS):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         super().__init__(n)
 *         self.gen.mus_increment = 1.0
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_12MovingLength_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_12MovingLength_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4426, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4426, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4426, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingLength.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12MovingLength___init__(((struct __pyx_obj_8pysndlib_10generators_MovingLength *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_12MovingLength___init__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4427
 * 
 *     def __init__(self, n=128):
 *         super().__init__(n)             # <<<<<<<<<<<<<<
 *         self.gen.mus_increment = 1.0
 * 
 */
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength);
  __Pyx_GIVEREF((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength))) __PYX_ERR(0, 4427, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self))) __PYX_ERR(0, 4427, __pyx_L1_error);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_super, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_v_n};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_4, 1+__pyx_t_4);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4428
 *     def __init__(self, n=128):
 *         super().__init__(n)
 *         self.gen.mus_increment = 1.0             # <<<<<<<<<<<<<<
 * 
 * cpdef MovingLength make_moving_length(n=128):
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->__pyx_base.gen), __pyx_n_s_mus_increment, __pyx_float_1_0) < 0) __PYX_ERR(0, 4428, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4426
 * cdef class MovingLength(MovingRMS):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         super().__init__(n)
 *         self.gen.mus_increment = 1.0
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.MovingLength.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_12MovingLength_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_12MovingLength_3__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12MovingLength_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_12MovingLength_3__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12MovingLength_2__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingLength *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_12MovingLength_2__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->__pyx_base.n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->__pyx_base.gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->__pyx_base.gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->__pyx_base.gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->__pyx_base.gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_MovingLength); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, None), state
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_MovingLength); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingLength.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_12MovingLength_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_12MovingLength_5__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12MovingLength_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_12MovingLength_5__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingLength.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_12MovingLength_4__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingLength *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_12MovingLength_4__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingLength__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingLength.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4430
 *         self.gen.mus_increment = 1.0
 * 
 * cpdef MovingLength make_moving_length(n=128):             # <<<<<<<<<<<<<<
 *     """returns a moving-length generator that produces the length
 *     of the values in a window over the last few inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_481make_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_f_8pysndlib_10generators_make_moving_length(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_length *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_length", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4434
 *     of the values in a window over the last few inputs.
 *     """
 *     return MovingLength(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4434, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_MovingLength *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4430
 *         self.gen.mus_increment = 1.0
 * 
 * cpdef MovingLength make_moving_length(n=128):             # <<<<<<<<<<<<<<
 *     """returns a moving-length generator that produces the length
 *     of the values in a window over the last few inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_481make_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_480make_moving_length, "returns a moving-length generator that produces the length \n    of the values in a window over the last few inputs.\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_481make_moving_length = {"make_moving_length", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_481make_moving_length, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_480make_moving_length};
static PyObject *__pyx_pw_8pysndlib_10generators_481make_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_moving_length (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4430, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_moving_length") < 0)) __PYX_ERR(0, 4430, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_moving_length", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4430, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_480make_moving_length(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_480make_moving_length(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_moving_length __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_length", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_moving_length(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4430, __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("pysndlib.generators.make_moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4436
 *     return MovingLength(n)
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the length of the values in a window over the last few inputs.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_483moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_length(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_length *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4445
 *     """
 * 
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_moving_length(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingLength *)__pyx_v_gen->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4445, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4436
 *     return MovingLength(n)
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the length of the values in a window over the last few inputs.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_483moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_482moving_length, "\n    returns the length of the values in a window over the last few inputs.\n    \n    :param gen: moving_length gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_483moving_length = {"moving_length", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_483moving_length, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_482moving_length};
static PyObject *__pyx_pw_8pysndlib_10generators_483moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("moving_length (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4436, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4436, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "moving_length") < 0)) __PYX_ERR(0, 4436, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_MovingLength *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4436, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("moving_length", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4436, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_MovingLength, 1, "gen", 0))) __PYX_ERR(0, 4436, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_482moving_length(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_482moving_length(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_moving_length __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("moving_length", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_moving_length(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4436, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4436, __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("pysndlib.generators.moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4447
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_length(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_length
 */

static PyObject *__pyx_pw_8pysndlib_10generators_485is_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_length(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4454
 *     :rtype: bool
 *     """
 *     return isinstance(gen, MovingLength)             # <<<<<<<<<<<<<<
 * 
 * # --------------- weighted-moving-average ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_MovingLength); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4447
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_length(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_length
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_485is_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_484is_moving_length, "\n    returns True if gen is an moving_length\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_485is_moving_length = {"is_moving_length", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_485is_moving_length, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_484is_moving_length};
static PyObject *__pyx_pw_8pysndlib_10generators_485is_moving_length(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_moving_length (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4447, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_moving_length") < 0)) __PYX_ERR(0, 4447, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_moving_length", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4447, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_484is_moving_length(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_484is_moving_length(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_moving_length", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_moving_length(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4447, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __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("pysndlib.generators.is_moving_length", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4459
 * cdef class WeightedMovingAverage(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.dly = clm.make_moving_average(self.n)
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4459, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4459, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4459, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage___init__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage___init__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4460
 * 
 *     def __init__(self, n=128):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.dly = clm.make_moving_average(self.n)
 *         self.dly.mus_increment = 1.0
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4460, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4461
 *     def __init__(self, n=128):
 *         self.n = n
 *         self.dly = clm.make_moving_average(self.n)             # <<<<<<<<<<<<<<
 *         self.dly.mus_increment = 1.0
 *         self.den = .5 * (self.n + 1) * n
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_moving_average); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 1+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4461, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4461, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->dly);
  __Pyx_DECREF((PyObject *)__pyx_v_self->dly);
  __pyx_v_self->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4462
 *         self.n = n
 *         self.dly = clm.make_moving_average(self.n)
 *         self.dly.mus_increment = 1.0             # <<<<<<<<<<<<<<
 *         self.den = .5 * (self.n + 1) * n
 *         self.num = 0.0
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->dly), __pyx_n_s_mus_increment, __pyx_float_1_0) < 0) __PYX_ERR(0, 4462, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4463
 *         self.dly = clm.make_moving_average(self.n)
 *         self.dly.mus_increment = 1.0
 *         self.den = .5 * (self.n + 1) * n             # <<<<<<<<<<<<<<
 *         self.num = 0.0
 *         self.sum = 0.0
 */
  __pyx_t_2 = PyFloat_FromDouble((.5 * (__pyx_v_self->n + 1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4463, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_self->den = __pyx_t_6;

  /* "pysndlib/generators.pyx":4464
 *         self.dly.mus_increment = 1.0
 *         self.den = .5 * (self.n + 1) * n
 *         self.num = 0.0             # <<<<<<<<<<<<<<
 *         self.sum = 0.0
 * 
 */
  __pyx_v_self->num = 0.0;

  /* "pysndlib/generators.pyx":4465
 *         self.den = .5 * (self.n + 1) * n
 *         self.num = 0.0
 *         self.sum = 0.0             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 */
  __pyx_v_self->sum = 0.0;

  /* "pysndlib/generators.pyx":4459
 * cdef class WeightedMovingAverage(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.dly = clm.make_moving_average(self.n)
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4467
 *         self.sum = 0.0
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_21WeightedMovingAverage_next(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_21WeightedMovingAverage_next *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4467, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4467, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4467, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4467, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4468
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         self.num = (self.num + (self.n*insig)) - self.sum             # <<<<<<<<<<<<<<
 *         self.sum = clm.moving_average(self.dly, insig)
 *         return self.num / self.den
 */
  __pyx_v_self->num = ((__pyx_v_self->num + (__pyx_v_self->n * __pyx_v_insig)) - __pyx_v_self->sum);

  /* "pysndlib/generators.pyx":4469
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)             # <<<<<<<<<<<<<<
 *         return self.num / self.den
 * 
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->dly);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_moving_average(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_v_insig, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4469, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_self->sum = __pyx_t_7;

  /* "pysndlib/generators.pyx":4470
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 *         return self.num / self.den             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  if (unlikely(__pyx_v_self->den == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4470, __pyx_L1_error)
  }
  __pyx_r = (__pyx_v_self->num / __pyx_v_self->den);
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4467
 *         self.sum = 0.0
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 */

  /* 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("pysndlib.generators.WeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4467, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4467, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4467, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4467, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_2next(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_2next(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_WeightedMovingAverage->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4467, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4467, __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("pysndlib.generators.WeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4472
 *         return self.num / self.den
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4472, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4472, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4472, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4472, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_4__call__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_4__call__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4473
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4473, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4472
 *         return self.num / self.den
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":919
 * 
 * cdef class WeightedMovingAverage(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any dly
 *     cdef public cython.double num
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 919, __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("pysndlib.generators.WeightedMovingAverage.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 919, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":920
 * cdef class WeightedMovingAverage(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public clm.mus_any dly             # <<<<<<<<<<<<<<
 *     cdef public cython.double num
 *     cdef public cython.double sum
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dly);
  __pyx_r = ((PyObject *)__pyx_v_self->dly);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 920, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->dly);
  __Pyx_DECREF((PyObject *)__pyx_v_self->dly);
  __pyx_v_self->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.dly.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_4__del__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3dly_4__del__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->dly);
  __Pyx_DECREF((PyObject *)__pyx_v_self->dly);
  __pyx_v_self->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":921
 *     cdef public cython.int n
 *     cdef public clm.mus_any dly
 *     cdef public cython.double num             # <<<<<<<<<<<<<<
 *     cdef public cython.double sum
 *     cdef public cython.double y
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->num); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 921, __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("pysndlib.generators.WeightedMovingAverage.num.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3num_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 921, __pyx_L1_error)
  __pyx_v_self->num = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.num.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":922
 *     cdef public clm.mus_any dly
 *     cdef public cython.double num
 *     cdef public cython.double sum             # <<<<<<<<<<<<<<
 *     cdef public cython.double y
 *     cdef public cython.double den
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 922, __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("pysndlib.generators.WeightedMovingAverage.sum.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3sum_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 922, __pyx_L1_error)
  __pyx_v_self->sum = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.sum.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":923
 *     cdef public cython.double num
 *     cdef public cython.double sum
 *     cdef public cython.double y             # <<<<<<<<<<<<<<
 *     cdef public cython.double den
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->y); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 923, __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("pysndlib.generators.WeightedMovingAverage.y.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_1y_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 923, __pyx_L1_error)
  __pyx_v_self->y = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.y.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":924
 *     cdef public cython.double sum
 *     cdef public cython.double y
 *     cdef public cython.double den             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den___get__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den___get__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->den); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 924, __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("pysndlib.generators.WeightedMovingAverage.den.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den_2__set__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_3den_2__set__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 924, __pyx_L1_error)
  __pyx_v_self->den = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.den.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.den, self.dly, self.n, self.num, self.sum, self.y)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->den); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->num); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_self->y); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->dly);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->dly);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_self->dly))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_4);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 5, __pyx_t_5)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.den, self.dly, self.n, self.num, self.sum, self.y)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_6 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v__dict = __pyx_t_6;
  __pyx_t_6 = 0;

  /* "(tree fragment)":7
 *     state = (self.den, self.dly, self.n, self.num, self.sum, self.y)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_7 = (__pyx_v__dict != Py_None);
  if (__pyx_t_7) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_5));
    __pyx_t_5 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.dly is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.den, self.dly, self.n, self.num, self.sum, self.y)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.dly is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, None), state
 */
  /*else*/ {
    __pyx_t_7 = (((PyObject *)__pyx_v_self->dly) != Py_None);
    __pyx_v_use_setstate = __pyx_t_7;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dly is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.dly is not None
 *     if use_setstate:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_WeightedMovingAve); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_191989756);
    __Pyx_GIVEREF(__pyx_int_191989756);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_191989756)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.dly is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, None), state
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_WeightedMovingAve); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_191989756);
    __Pyx_GIVEREF(__pyx_int_191989756);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_191989756)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_6);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_6 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_21WeightedMovingAverage_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_WeightedMovingAverage__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.WeightedMovingAverage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4476
 * 
 * 
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_487make_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_f_8pysndlib_10generators_make_weighted_moving_average(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_weighted_moving_average *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_weighted_moving_average", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4478
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4476
 * 
 * 
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_487make_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_486make_weighted_moving_average, "returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_487make_weighted_moving_average = {"make_weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_487make_weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_486make_weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_487make_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4476, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_weighted_moving_average") < 0)) __PYX_ERR(0, 4476, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_weighted_moving_average", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4476, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_486make_weighted_moving_average(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_486make_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_weighted_moving_average __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_weighted_moving_average(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4476, __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("pysndlib.generators.make_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4480
 *     return WeightedMovingAverage(n)
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by 1/n
 */

static PyObject *__pyx_pw_8pysndlib_10generators_489weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_weighted_moving_average(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4488
 * 
 *     """
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_weighted_moving_average(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4488, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4480
 *     return WeightedMovingAverage(n)
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by 1/n
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_489weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_488weighted_moving_average, "\n    returns the sum of the last n inputs weighted by 1/n\n    :param gen: weighted_moving_average gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_489weighted_moving_average = {"weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_489weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_488weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_489weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4480, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4480, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "weighted_moving_average") < 0)) __PYX_ERR(0, 4480, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4480, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("weighted_moving_average", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4480, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage, 1, "gen", 0))) __PYX_ERR(0, 4480, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_488weighted_moving_average(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_488weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_weighted_moving_average(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4480, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4480, __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("pysndlib.generators.weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4490
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an weighted_moving_average
 */

static PyObject *__pyx_pw_8pysndlib_10generators_491is_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_weighted_moving_average(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4497
 *     :rtype: bool
 *     """
 *     return isinstance(gen, WeightedMovingAverage)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4490
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an weighted_moving_average
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_491is_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_490is_weighted_moving_average, "\n    returns True if gen is an weighted_moving_average\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_491is_weighted_moving_average = {"is_weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_491is_weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_490is_weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_491is_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4490, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_weighted_moving_average") < 0)) __PYX_ERR(0, 4490, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_weighted_moving_average", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4490, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_490is_weighted_moving_average(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_490is_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_weighted_moving_average(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4490, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4490, __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("pysndlib.generators.is_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4503
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4503, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4503, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4503, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage___init__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage___init__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_n) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  double __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4504
 * 
 *     def __init__(self, n=128):
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_n); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4504, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* "pysndlib/generators.pyx":4505
 *     def __init__(self, n=128):
 *         self.n = n
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_one_pole); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(__pyx_v_self->n == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4505, __pyx_L1_error)
  }
  __pyx_t_3 = PyFloat_FromDouble((1.0 / ((double)__pyx_v_self->n))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = (-__pyx_v_self->n);
  __pyx_t_5 = (1.0 + __pyx_v_self->n);
  if (unlikely(__pyx_t_5 == 0)) {
    PyErr_SetString(PyExc_ZeroDivisionError, "float division");
    __PYX_ERR(0, 4505, __pyx_L1_error)
  }
  __pyx_t_6 = PyFloat_FromDouble((((double)__pyx_t_1) / __pyx_t_5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = NULL;
  __pyx_t_1 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_1 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_3, __pyx_t_6};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_1, 2+__pyx_t_1);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4505, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4503
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):
 * 
 *     def __init__(self, n=128):             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4507
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.one_pole(self.gen, insig)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4507, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_insig); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4507, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4507, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4507, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4508
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):
 *         return clm.one_pole(self.gen, insig)             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  __pyx_t_1 = ((PyObject *)__pyx_v_self->gen);
  __Pyx_INCREF(__pyx_t_1);
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_one_pole(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), __pyx_v_insig, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4508, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4507
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.one_pole(self.gen, insig)
 * 
 */

  /* 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("pysndlib.generators.ExponentiallyWeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4507, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4507, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4507, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4507, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_2next(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_2next(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4507, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4507, __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("pysndlib.generators.ExponentiallyWeightedMovingAverage.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4510
 *         return clm.one_pole(self.gen, insig)
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4510, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4510, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4510, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4510, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_4__call__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_4__call__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4511
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4511, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4510
 *         return clm.one_pole(self.gen, insig)
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":932
 * 
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):
 *     cdef public cython.int n             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any gen
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n___get__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n___get__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 932, __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("pysndlib.generators.ExponentiallyWeightedMovingAverage.n.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_2__set__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_2__set__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  int __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(3, 932, __pyx_L1_error)
  __pyx_v_self->n = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.n.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":933
 * cdef class ExponentiallyWeightedMovingAverage(CLMGenerator):
 *     cdef public cython.int n
 *     cdef public clm.mus_any gen             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen___get__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen___get__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __pyx_r = ((PyObject *)__pyx_v_self->gen);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_2__set__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_2__set__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 933, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.gen.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_4__del__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_4__del__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->gen);
  __Pyx_DECREF((PyObject *)__pyx_v_self->gen);
  __pyx_v_self->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->n); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF((PyObject *)__pyx_v_self->gen);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->gen);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->gen))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_2 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v__dict = __pyx_t_2;
  __pyx_t_2 = 0;

  /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_3 = (__pyx_v__dict != Py_None);
  if (__pyx_t_3) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_1));
    __pyx_t_1 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.gen is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.gen, self.n)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.gen is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, None), state
 */
  /*else*/ {
    __pyx_t_3 = (((PyObject *)__pyx_v_self->gen) != Py_None);
    __pyx_v_use_setstate = __pyx_t_3;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.gen is not None
 *     if use_setstate:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_ExponentiallyWeig); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.gen is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, None), state
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_ExponentiallyWeig); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_89407914);
    __Pyx_GIVEREF(__pyx_int_89407914);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_89407914)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.ExponentiallyWeightedMovingAverage.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4514
 * 
 * 
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_493make_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_f_8pysndlib_10generators_make_exponentially_weighted_moving_average(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_exponentially_weighted_moving_average *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_128);
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_exponentially_weighted_moving_average", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
    }
  }

  /* "pysndlib/generators.pyx":4516
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage), __pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_t_1);
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4514
 * 
 * 
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.make_exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_493make_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_492make_exponentially_weighted_moving_average, "returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_493make_exponentially_weighted_moving_average = {"make_exponentially_weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_493make_exponentially_weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_492make_exponentially_weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_493make_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_n = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_exponentially_weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4514, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_exponentially_weighted_moving_average") < 0)) __PYX_ERR(0, 4514, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_n = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_exponentially_weighted_moving_average", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4514, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_492make_exponentially_weighted_moving_average(__pyx_self, __pyx_v_n);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_492make_exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_n) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_exponentially_weighted_moving_average __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_exponentially_weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_exponentially_weighted_moving_average(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4514, __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("pysndlib.generators.make_exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4518
 *     return ExponentiallyWeightedMovingAverage(n)
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by (-n/(n+1))^k
 */

static PyObject *__pyx_pw_8pysndlib_10generators_495exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_exponentially_weighted_moving_average(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average *__pyx_optional_args) {
  double __pyx_v_insig = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_insig = __pyx_optional_args->insig;
    }
  }

  /* "pysndlib/generators.pyx":4526
 * 
 *     """
 *     return gen.next(insig)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4526, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4518
 *     return ExponentiallyWeightedMovingAverage(n)
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by (-n/(n+1))^k
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_495exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_494exponentially_weighted_moving_average, "\n    returns the sum of the last n inputs weighted by (-n/(n+1))^k\n    :param gen: exponentially_weighted_moving_average gen\n    :param fm: fm input\n    :rtype: float\n    \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_495exponentially_weighted_moving_average = {"exponentially_weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_495exponentially_weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_494exponentially_weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_495exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_gen = 0;
  double __pyx_v_insig;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("exponentially_weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4518, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4518, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "exponentially_weighted_moving_average") < 0)) __PYX_ERR(0, 4518, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)values[0]);
    if (values[1]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4518, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("exponentially_weighted_moving_average", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4518, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, 1, "gen", 0))) __PYX_ERR(0, 4518, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_494exponentially_weighted_moving_average(__pyx_self, __pyx_v_gen, __pyx_v_insig);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_494exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v_gen, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("exponentially_weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.insig = __pyx_v_insig;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_exponentially_weighted_moving_average(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4518, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4518, __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("pysndlib.generators.exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4528
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an exponentially_weighted_moving_average
 */

static PyObject *__pyx_pw_8pysndlib_10generators_497is_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_exponentially_weighted_moving_average(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4535
 *     :rtype: bool
 *     """
 *     return isinstance(gen, ExponentiallyWeightedMovingAverage)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4528
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an exponentially_weighted_moving_average
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_497is_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_496is_exponentially_weighted_moving_average, "\n    returns True if gen is an exponentially_weighted_moving_average\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_497is_exponentially_weighted_moving_average = {"is_exponentially_weighted_moving_average", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_497is_exponentially_weighted_moving_average, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_496is_exponentially_weighted_moving_average};
static PyObject *__pyx_pw_8pysndlib_10generators_497is_exponentially_weighted_moving_average(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_exponentially_weighted_moving_average (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4528, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_exponentially_weighted_moving_average") < 0)) __PYX_ERR(0, 4528, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_exponentially_weighted_moving_average", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4528, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_496is_exponentially_weighted_moving_average(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_496is_exponentially_weighted_moving_average(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_exponentially_weighted_moving_average", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_exponentially_weighted_moving_average(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4528, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4528, __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("pysndlib.generators.is_exponentially_weighted_moving_average", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4540
 * # --------------- polyoid ---------------- #
 * 
 * cpdef clm.mus_any make_polyoid(frequency, partial_amps_and_phases):             # <<<<<<<<<<<<<<
 *     """
 *     returns a polyoid generator that combines the first and second Chebyshev polynomials
 */

static PyObject *__pyx_pw_8pysndlib_10generators_499make_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_f_8pysndlib_10generators_make_polyoid(PyObject *__pyx_v_frequency, PyObject *__pyx_v_partial_amps_and_phases, CYTHON_UNUSED int __pyx_skip_dispatch) {
  Py_ssize_t __pyx_v_length;
  PyObject *__pyx_v_n = NULL;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_topk = NULL;
  PyObject *__pyx_v_sin_amps = NULL;
  PyObject *__pyx_v_cos_amps = NULL;
  PyObject *__pyx_v_j = NULL;
  PyObject *__pyx_v_amp = NULL;
  PyObject *__pyx_v_phase = NULL;
  struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  Py_ssize_t __pyx_t_1;
  Py_ssize_t __pyx_t_2;
  Py_ssize_t __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_t_8;
  int __pyx_t_9;
  PyObject *__pyx_t_10 = NULL;
  PyObject *(*__pyx_t_11)(PyObject *);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_polyoid", 1);

  /* "pysndlib/generators.pyx":4545
 *     to provide a sum of sinusoids each with arbitrary amplitude and initial-phase.
 *     """
 *     length = len(partial_amps_and_phases)             # <<<<<<<<<<<<<<
 *     n = 0
 *     for i in range(0, length, 3):
 */
  __pyx_t_1 = PyObject_Length(__pyx_v_partial_amps_and_phases); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4545, __pyx_L1_error)
  __pyx_v_length = __pyx_t_1;

  /* "pysndlib/generators.pyx":4546
 *     """
 *     length = len(partial_amps_and_phases)
 *     n = 0             # <<<<<<<<<<<<<<
 *     for i in range(0, length, 3):
 *         n = max(n, floor(partial_amps_and_phases[i]))
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_n = __pyx_int_0;

  /* "pysndlib/generators.pyx":4547
 *     length = len(partial_amps_and_phases)
 *     n = 0
 *     for i in range(0, length, 3):             # <<<<<<<<<<<<<<
 *         n = max(n, floor(partial_amps_and_phases[i]))
 *     topk = n + 1
 */
  __pyx_t_1 = __pyx_v_length;
  __pyx_t_2 = __pyx_t_1;
  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=3) {
    __pyx_v_i = __pyx_t_3;

    /* "pysndlib/generators.pyx":4548
 *     n = 0
 *     for i in range(0, length, 3):
 *         n = max(n, floor(partial_amps_and_phases[i]))             # <<<<<<<<<<<<<<
 *     topk = n + 1
 *     sin_amps = np.zeros(topk, dtype=np.double)
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_floor); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_partial_amps_and_phases, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_6};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4548, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_INCREF(__pyx_v_n);
    __pyx_t_5 = __pyx_v_n;
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4548, __pyx_L1_error)
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 4548, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_9) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_6 = __pyx_t_4;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_n, __pyx_t_4);
    __pyx_t_4 = 0;
  }

  /* "pysndlib/generators.pyx":4549
 *     for i in range(0, length, 3):
 *         n = max(n, floor(partial_amps_and_phases[i]))
 *     topk = n + 1             # <<<<<<<<<<<<<<
 *     sin_amps = np.zeros(topk, dtype=np.double)
 *     cos_amps = np.zeros(topk, dtype=np.double)
 */
  __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_n, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_topk = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":4550
 *         n = max(n, floor(partial_amps_and_phases[i]))
 *     topk = n + 1
 *     sin_amps = np.zeros(topk, dtype=np.double)             # <<<<<<<<<<<<<<
 *     cos_amps = np.zeros(topk, dtype=np.double)
 *     for j in range(0,length,3):
 */
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_topk);
  __Pyx_GIVEREF(__pyx_v_topk);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_topk)) __PYX_ERR(0, 4550, __pyx_L1_error);
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_sin_amps = __pyx_t_10;
  __pyx_t_10 = 0;

  /* "pysndlib/generators.pyx":4551
 *     topk = n + 1
 *     sin_amps = np.zeros(topk, dtype=np.double)
 *     cos_amps = np.zeros(topk, dtype=np.double)             # <<<<<<<<<<<<<<
 *     for j in range(0,length,3):
 *         n = floor((partial_amps_and_phases[j]))
 */
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_INCREF(__pyx_v_topk);
  __Pyx_GIVEREF(__pyx_v_topk);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_topk)) __PYX_ERR(0, 4551, __pyx_L1_error);
  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_double); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_7) < 0) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_cos_amps = __pyx_t_7;
  __pyx_t_7 = 0;

  /* "pysndlib/generators.pyx":4552
 *     sin_amps = np.zeros(topk, dtype=np.double)
 *     cos_amps = np.zeros(topk, dtype=np.double)
 *     for j in range(0,length,3):             # <<<<<<<<<<<<<<
 *         n = floor((partial_amps_and_phases[j]))
 *         amp = partial_amps_and_phases[j+1]
 */
  __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0)) __PYX_ERR(0, 4552, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7)) __PYX_ERR(0, 4552, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_3)) __PYX_ERR(0, 4552, __pyx_L1_error);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4);
    __pyx_t_1 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_1 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4552, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4552, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 4552, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(0, 4552, __pyx_L1_error)
        #else
        __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4552, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        {
          Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
          #if !CYTHON_ASSUME_SAFE_MACROS
          if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 4552, __pyx_L1_error)
          #endif
          if (__pyx_t_1 >= __pyx_temp) break;
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(0, 4552, __pyx_L1_error)
        #else
        __pyx_t_7 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4552, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_11(__pyx_t_4);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4552, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "pysndlib/generators.pyx":4553
 *     cos_amps = np.zeros(topk, dtype=np.double)
 *     for j in range(0,length,3):
 *         n = floor((partial_amps_and_phases[j]))             # <<<<<<<<<<<<<<
 *         amp = partial_amps_and_phases[j+1]
 *         phase = partial_amps_and_phases[j+2]
 */
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_floor); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_partial_amps_and_phases, __pyx_v_j); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_5};
      __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF_SET(__pyx_v_n, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "pysndlib/generators.pyx":4554
 *     for j in range(0,length,3):
 *         n = floor((partial_amps_and_phases[j]))
 *         amp = partial_amps_and_phases[j+1]             # <<<<<<<<<<<<<<
 *         phase = partial_amps_and_phases[j+2]
 *         if n > 0:
 */
    __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_j, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4554, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_partial_amps_and_phases, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4554, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_amp, __pyx_t_10);
    __pyx_t_10 = 0;

    /* "pysndlib/generators.pyx":4555
 *         n = floor((partial_amps_and_phases[j]))
 *         amp = partial_amps_and_phases[j+1]
 *         phase = partial_amps_and_phases[j+2]             # <<<<<<<<<<<<<<
 *         if n > 0:
 *             sin_amps[n] = amp * cos(phase)
 */
    __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_v_j, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_partial_amps_and_phases, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF_SET(__pyx_v_phase, __pyx_t_7);
    __pyx_t_7 = 0;

    /* "pysndlib/generators.pyx":4556
 *         amp = partial_amps_and_phases[j+1]
 *         phase = partial_amps_and_phases[j+2]
 *         if n > 0:             # <<<<<<<<<<<<<<
 *             sin_amps[n] = amp * cos(phase)
 *         cos_amps[n] = amp * sin(phase)
 */
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_n, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4556, __pyx_L1_error)
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(0, 4556, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_9) {

      /* "pysndlib/generators.pyx":4557
 *         phase = partial_amps_and_phases[j+2]
 *         if n > 0:
 *             sin_amps[n] = amp * cos(phase)             # <<<<<<<<<<<<<<
 *         cos_amps[n] = amp * sin(phase)
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cos); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4557, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_5 = NULL;
      __pyx_t_8 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_8 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_phase};
        __pyx_t_7 = __Pyx_PyObject_FastCall(__pyx_t_10, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4557, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __pyx_t_10 = PyNumber_Multiply(__pyx_v_amp, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4557, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely((PyObject_SetItem(__pyx_v_sin_amps, __pyx_v_n, __pyx_t_10) < 0))) __PYX_ERR(0, 4557, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;

      /* "pysndlib/generators.pyx":4556
 *         amp = partial_amps_and_phases[j+1]
 *         phase = partial_amps_and_phases[j+2]
 *         if n > 0:             # <<<<<<<<<<<<<<
 *             sin_amps[n] = amp * cos(phase)
 *         cos_amps[n] = amp * sin(phase)
 */
    }

    /* "pysndlib/generators.pyx":4558
 *         if n > 0:
 *             sin_amps[n] = amp * cos(phase)
 *         cos_amps[n] = amp * sin(phase)             # <<<<<<<<<<<<<<
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 * 
 */
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_sin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4558, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_v_phase};
      __pyx_t_10 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_t_7 = PyNumber_Multiply(__pyx_v_amp, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4558, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely((PyObject_SetItem(__pyx_v_cos_amps, __pyx_v_n, __pyx_t_7) < 0))) __PYX_ERR(0, 4558, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "pysndlib/generators.pyx":4552
 *     sin_amps = np.zeros(topk, dtype=np.double)
 *     cos_amps = np.zeros(topk, dtype=np.double)
 *     for j in range(0,length,3):             # <<<<<<<<<<<<<<
 *         n = floor((partial_amps_and_phases[j]))
 *         amp = partial_amps_and_phases[j+1]
 */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "pysndlib/generators.pyx":4559
 *             sin_amps[n] = amp * cos(phase)
 *         cos_amps[n] = amp * sin(phase)
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=0.0):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_clm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_make_polywave); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_frequency)) __PYX_ERR(0, 4559, __pyx_L1_error);
  __pyx_t_10 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_xcoeffs, __pyx_v_cos_amps) < 0) __PYX_ERR(0, 4559, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_ycoeffs, __pyx_v_sin_amps) < 0) __PYX_ERR(0, 4559, __pyx_L1_error)
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4559, __pyx_L1_error)
  __pyx_r = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_5);
  __pyx_t_5 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4540
 * # --------------- polyoid ---------------- #
 * 
 * cpdef clm.mus_any make_polyoid(frequency, partial_amps_and_phases):             # <<<<<<<<<<<<<<
 *     """
 *     returns a polyoid generator that combines the first and second Chebyshev polynomials
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("pysndlib.generators.make_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_n);
  __Pyx_XDECREF(__pyx_v_topk);
  __Pyx_XDECREF(__pyx_v_sin_amps);
  __Pyx_XDECREF(__pyx_v_cos_amps);
  __Pyx_XDECREF(__pyx_v_j);
  __Pyx_XDECREF(__pyx_v_amp);
  __Pyx_XDECREF(__pyx_v_phase);
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_499make_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_498make_polyoid, "\n    returns a polyoid generator that combines the first and second Chebyshev polynomials \n    to provide a sum of sinusoids each with arbitrary amplitude and initial-phase. \n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_499make_polyoid = {"make_polyoid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_499make_polyoid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_498make_polyoid};
static PyObject *__pyx_pw_8pysndlib_10generators_499make_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_partial_amps_and_phases = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_polyoid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_partial_amps_and_phases,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4540, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_partial_amps_and_phases)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4540, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("make_polyoid", 1, 2, 2, 1); __PYX_ERR(0, 4540, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_polyoid") < 0)) __PYX_ERR(0, 4540, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_frequency = values[0];
    __pyx_v_partial_amps_and_phases = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_polyoid", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 4540, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_498make_polyoid(__pyx_self, __pyx_v_frequency, __pyx_v_partial_amps_and_phases);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_498make_polyoid(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_partial_amps_and_phases) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_polyoid", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_polyoid(__pyx_v_frequency, __pyx_v_partial_amps_and_phases, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4540, __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("pysndlib.generators.make_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4561
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns sum of sinusoids each with arbitrary amplitude and initial-phase.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_501polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_polyoid(struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_polyoid *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_3clm_polywave __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4568
 *     :rtype: float
 *     """
 *     return clm.polywave(gen, fm)             # <<<<<<<<<<<<<<
 * 
 * # look at this later
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_3clm_polywave(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4568, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4561
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns sum of sinusoids each with arbitrary amplitude and initial-phase.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_501polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_500polyoid, "\n    returns sum of sinusoids each with arbitrary amplitude and initial-phase.\n    :param gen: polyoid gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_501polyoid = {"polyoid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_501polyoid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_500polyoid};
static PyObject *__pyx_pw_8pysndlib_10generators_501polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("polyoid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4561, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4561, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "polyoid") < 0)) __PYX_ERR(0, 4561, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4561, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("polyoid", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4561, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_3clm_mus_any, 1, "gen", 0))) __PYX_ERR(0, 4561, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_500polyoid(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_500polyoid(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_polyoid __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polyoid", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_polyoid(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4561, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4561, __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("pysndlib.generators.polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4572
 * # look at this later
 * #cpdef cython.double polyoid_env(clm.mus_any gen, cython.double fm=0.0, amps, phases, original_data):
 * cpdef cython.bint is_polyoid(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an polyoid
 */

static PyObject *__pyx_pw_8pysndlib_10generators_503is_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_polyoid(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_polyoid", 1);

  /* "pysndlib/generators.pyx":4579
 *     :rtype: bool
 *     """
 *     return clm.is_polywave(gen) and gen.mus_channel == clm.Polynomial.BOTH_KINDS             # <<<<<<<<<<<<<<
 * 
 * cpdef polyoid_tn(gen):
 */
  if (!(likely(((__pyx_v_gen) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_gen, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4579, __pyx_L1_error)
  __pyx_t_2 = __pyx_f_8pysndlib_3clm_is_polywave(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_v_gen), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4579, __pyx_L1_error)
  if (__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L3_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_gen, __pyx_n_s_mus_channel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_Enum_enum__dunderpyx_t_8pysndlib_3clm_Polynomial_to_py(__pyx_e_8pysndlib_3clm_BOTH_KINDS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 4579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_1 = __pyx_t_2;
  __pyx_L3_bool_binop_done:;
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4572
 * # look at this later
 * #cpdef cython.double polyoid_env(clm.mus_any gen, cython.double fm=0.0, amps, phases, original_data):
 * cpdef cython.bint is_polyoid(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an polyoid
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.is_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_503is_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_502is_polyoid, "\n    returns True if gen is an polyoid\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_503is_polyoid = {"is_polyoid", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_503is_polyoid, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_502is_polyoid};
static PyObject *__pyx_pw_8pysndlib_10generators_503is_polyoid(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_polyoid (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4572, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_polyoid") < 0)) __PYX_ERR(0, 4572, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_polyoid", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4572, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_502is_polyoid(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_502is_polyoid(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_polyoid", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_polyoid(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4572, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4572, __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("pysndlib.generators.is_polyoid", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4581
 *     return clm.is_polywave(gen) and gen.mus_channel == clm.Polynomial.BOTH_KINDS
 * 
 * cpdef polyoid_tn(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_xcoeffs
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_505polyoid_tn(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_polyoid_tn(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polyoid_tn", 1);

  /* "pysndlib/generators.pyx":4582
 * 
 * cpdef polyoid_tn(gen):
 *     return gen.mus_xcoeffs             # <<<<<<<<<<<<<<
 * 
 * cpdef polyoid_un(gen):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_gen, __pyx_n_s_mus_xcoeffs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4581
 *     return clm.is_polywave(gen) and gen.mus_channel == clm.Polynomial.BOTH_KINDS
 * 
 * cpdef polyoid_tn(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_xcoeffs
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.polyoid_tn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_505polyoid_tn(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_505polyoid_tn = {"polyoid_tn", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_505polyoid_tn, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_505polyoid_tn(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("polyoid_tn (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4581, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "polyoid_tn") < 0)) __PYX_ERR(0, 4581, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("polyoid_tn", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4581, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.polyoid_tn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_504polyoid_tn(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_504polyoid_tn(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polyoid_tn", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_polyoid_tn(__pyx_v_gen, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4581, __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("pysndlib.generators.polyoid_tn", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4584
 *     return gen.mus_xcoeffs
 * 
 * cpdef polyoid_un(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_ycoeffs
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_507polyoid_un(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_polyoid_un(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polyoid_un", 1);

  /* "pysndlib/generators.pyx":4585
 * 
 * cpdef polyoid_un(gen):
 *     return gen.mus_ycoeffs             # <<<<<<<<<<<<<<
 * 
 * # # # TODO: these require potentially loading a file so
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_gen, __pyx_n_s_mus_ycoeffs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4584
 *     return gen.mus_xcoeffs
 * 
 * cpdef polyoid_un(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_ycoeffs
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.polyoid_un", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_507polyoid_un(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_507polyoid_un = {"polyoid_un", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_507polyoid_un, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_507polyoid_un(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("polyoid_un (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4584, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "polyoid_un") < 0)) __PYX_ERR(0, 4584, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("polyoid_un", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4584, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.polyoid_un", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_506polyoid_un(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_506polyoid_un(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("polyoid_un", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_polyoid_un(__pyx_v_gen, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4584, __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("pysndlib.generators.polyoid_un", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4602
 * cdef class Tanhsin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0,initial_phase=0.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  PyObject *__pyx_v_initial_phase = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,&__pyx_n_s_initial_phase,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_1_0));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_float_0_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4602, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4602, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_initial_phase);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4602, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4602, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
    __pyx_v_initial_phase = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, __pyx_nargs); __PYX_ERR(0, 4602, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin___init__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), __pyx_v_frequency, __pyx_v_r, __pyx_v_initial_phase);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Tanhsin___init__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r, PyObject *__pyx_v_initial_phase) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  double __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4603
 * 
 *     def __init__(self, frequency, r=1.0,initial_phase=0.0):
 *         self.frequency = frequency             # <<<<<<<<<<<<<<
 *         self.r = r
 *         self.osc = clm.make_oscil(frequency, initial_phase)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4603, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* "pysndlib/generators.pyx":4604
 *     def __init__(self, frequency, r=1.0,initial_phase=0.0):
 *         self.frequency = frequency
 *         self.r = r             # <<<<<<<<<<<<<<
 *         self.osc = clm.make_oscil(frequency, initial_phase)
 *         self.frequency = clm.hz2radians(frequency)
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_r); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4604, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* "pysndlib/generators.pyx":4605
 *         self.frequency = frequency
 *         self.r = r
 *         self.osc = clm.make_oscil(frequency, initial_phase)             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_clm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_make_oscil); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_v_frequency, __pyx_v_initial_phase};
    __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4605, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4605, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_2);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_2);
  __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":4606
 *         self.r = r
 *         self.osc = clm.make_oscil(frequency, initial_phase)
 *         self.frequency = clm.hz2radians(frequency)             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 */
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_frequency); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4606, __pyx_L1_error)
  __pyx_t_6 = __pyx_f_8pysndlib_3clm_hz2radians(__pyx_t_1, 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4606, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_6;

  /* "pysndlib/generators.pyx":4602
 * cdef class Tanhsin(CLMGenerator):
 * 
 *     def __init__(self, frequency, r=1.0,initial_phase=0.0):             # <<<<<<<<<<<<<<
 *         self.frequency = frequency
 *         self.r = r
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4608
 *         self.frequency = clm.hz2radians(frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_7Tanhsin_next(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_7Tanhsin_next *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.0);
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  struct __pyx_opt_args_8pysndlib_3clm_oscil __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_7Tanhsin_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_fm); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4608, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4609
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):
 *         return tanh(self.r * clm.oscil(self.osc, fm))             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tanh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = ((PyObject *)__pyx_v_self->osc);
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_8.__pyx_n = 1;
  __pyx_t_8.fm = __pyx_v_fm;
  __pyx_t_7 = __pyx_f_8pysndlib_3clm_oscil(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_4), 0, &__pyx_t_8); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyFloat_FromDouble((__pyx_v_self->r * __pyx_t_7)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4609, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = __pyx_t_7;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4608
 *         self.frequency = clm.hz2radians(frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 */

  /* 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("pysndlib.generators.Tanhsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Tanhsin_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Tanhsin_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4608, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4608, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4608, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4608, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_2next(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_2next(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_Tanhsin->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4608, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4608, __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("pysndlib.generators.Tanhsin.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4611
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_fm;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4611, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4611, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_4__call__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), __pyx_v_fm);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_4__call__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4612
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:
 *         return self.next(fm)             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Tanhsin *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4612, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4611
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 *     def __call__(self, cython.double fm=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(fm)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pxd":957
 * # --------------- tanhsin ---------------- #
 * cdef class Tanhsin(CLMGenerator):
 *     cdef public cython.double frequency             # <<<<<<<<<<<<<<
 *     cdef public cython.double r
 *     cdef public clm.mus_any osc
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency___get__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 957, __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("pysndlib.generators.Tanhsin.frequency.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency_2__set__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Tanhsin_9frequency_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 957, __pyx_L1_error)
  __pyx_v_self->frequency = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.frequency.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":958
 * cdef class Tanhsin(CLMGenerator):
 *     cdef public cython.double frequency
 *     cdef public cython.double r             # <<<<<<<<<<<<<<
 *     cdef public clm.mus_any osc
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_1r_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_1r_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_1r___get__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_1r___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 958, __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("pysndlib.generators.Tanhsin.r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_1r_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_1r_2__set__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Tanhsin_1r_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 958, __pyx_L1_error)
  __pyx_v_self->r = __pyx_t_1;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.r.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* "pysndlib/generators.pxd":959
 *     cdef public cython.double frequency
 *     cdef public cython.double r
 *     cdef public clm.mus_any osc             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=*)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc___get__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_3osc___get__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__", 1);
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __pyx_r = ((PyObject *)__pyx_v_self->osc);
  goto __pyx_L0;

  /* function exit code */
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__set__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_2__set__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), ((PyObject *)__pyx_v_value));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_2__set__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v_value) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__set__", 1);
  if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(3, 959, __pyx_L1_error)
  __pyx_t_1 = __pyx_v_value;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.osc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_5__del__(PyObject *__pyx_v_self); /*proto*/
static int __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_5__del__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_4__del__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_7Tanhsin_3osc_4__del__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__del__", 1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  __Pyx_GOTREF((PyObject *)__pyx_v_self->osc);
  __Pyx_DECREF((PyObject *)__pyx_v_self->osc);
  __pyx_v_self->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None);

  /* function exit code */
  __pyx_r = 0;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Tanhsin_7__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Tanhsin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_7__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_6__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_6__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc, self.r)             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->frequency); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->r); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_INCREF((PyObject *)__pyx_v_self->osc);
  __Pyx_GIVEREF((PyObject *)__pyx_v_self->osc);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->osc))) __PYX_ERR(1, 5, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 5, __pyx_L1_error);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_v_state = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_3 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v__dict = __pyx_t_3;
  __pyx_t_3 = 0;

  /* "(tree fragment)":7
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_4 = (__pyx_v__dict != Py_None);
  if (__pyx_t_4) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = self.osc is not None
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = (self.frequency, self.osc, self.r)
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = self.osc is not None             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, None), state
 */
  /*else*/ {
    __pyx_t_4 = (((PyObject *)__pyx_v_self->osc) != Py_None);
    __pyx_v_use_setstate = __pyx_t_4;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = self.osc is not None
 *     if use_setstate:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pyx_unpickle_Tanhsin); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_152846879);
    __Pyx_GIVEREF(__pyx_int_152846879);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_152846879)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = self.osc is not None
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, None), state
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pyx_unpickle_Tanhsin); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_152846879);
    __Pyx_GIVEREF(__pyx_int_152846879);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_152846879)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_1 = 0;
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_7Tanhsin_9__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Tanhsin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_7Tanhsin_9__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_7Tanhsin_8__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_7Tanhsin_8__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Tanhsin__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.Tanhsin.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4615
 * 
 * 
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)
 */

static PyObject *__pyx_pw_8pysndlib_10generators_509make_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_f_8pysndlib_10generators_make_tanhsin(CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_tanhsin *__pyx_optional_args) {
  PyObject *__pyx_v_frequency = ((PyObject *)__pyx_int_0);
  PyObject *__pyx_v_r = ((PyObject *)__pyx_float_1_);
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_tanhsin", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_frequency = __pyx_optional_args->frequency;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_r = __pyx_optional_args->r;
      }
    }
  }

  /* "pysndlib/generators.pyx":4617
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=0.):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_frequency);
  __Pyx_GIVEREF(__pyx_v_frequency);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_frequency)) __PYX_ERR(0, 4617, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_r);
  __Pyx_GIVEREF(__pyx_v_r);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_r)) __PYX_ERR(0, 4617, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_Tanhsin), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4617, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4615
 * 
 * 
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_509make_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_508make_tanhsin, "returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases.");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_509make_tanhsin = {"make_tanhsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_509make_tanhsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_508make_tanhsin};
static PyObject *__pyx_pw_8pysndlib_10generators_509make_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_frequency = 0;
  PyObject *__pyx_v_r = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_tanhsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_frequency,&__pyx_n_s_r,0};
    values[0] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_float_1_));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_frequency);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_r);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4615, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_tanhsin") < 0)) __PYX_ERR(0, 4615, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_frequency = values[0];
    __pyx_v_r = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_tanhsin", 0, 0, 2, __pyx_nargs); __PYX_ERR(0, 4615, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_508make_tanhsin(__pyx_self, __pyx_v_frequency, __pyx_v_r);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_508make_tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_frequency, PyObject *__pyx_v_r) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_tanhsin __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_tanhsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 2;
  __pyx_t_2.frequency = __pyx_v_frequency;
  __pyx_t_2.r = __pyx_v_r;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_tanhsin(0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4615, __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("pysndlib.generators.make_tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4619
 *     return Tanhsin(frequency, r)
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns tanh(r*sin) which approaches a square wave as r increases.
 */

static PyObject *__pyx_pw_8pysndlib_10generators_511tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_tanhsin(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_tanhsin *__pyx_optional_args) {
  double __pyx_v_fm = ((double)0.);
  double __pyx_r;
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_fm = __pyx_optional_args->fm;
    }
  }

  /* "pysndlib/generators.pyx":4627
 *     :rtype: float
 *     """
 *     return gen.next(fm)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_tanhsin(gen):
 */
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_Tanhsin *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4627, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4619
 *     return Tanhsin(frequency, r)
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns tanh(r*sin) which approaches a square wave as r increases.
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_511tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_510tanhsin, "\n    returns tanh(r*sin) which approaches a square wave as r increases.\n    \n    :param gen: tanhsin gen\n    :param fm: fm input\n    :rtype: float\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_511tanhsin = {"tanhsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_511tanhsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_510tanhsin};
static PyObject *__pyx_pw_8pysndlib_10generators_511tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_gen = 0;
  double __pyx_v_fm;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("tanhsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,&__pyx_n_s_fm,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4619, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fm);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4619, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "tanhsin") < 0)) __PYX_ERR(0, 4619, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)values[0]);
    if (values[1]) {
      __pyx_v_fm = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_fm == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4619, __pyx_L3_error)
    } else {
      __pyx_v_fm = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("tanhsin", 0, 1, 2, __pyx_nargs); __PYX_ERR(0, 4619, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_Tanhsin, 1, "gen", 0))) __PYX_ERR(0, 4619, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_510tanhsin(__pyx_self, __pyx_v_gen, __pyx_v_fm);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_510tanhsin(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v_gen, double __pyx_v_fm) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_tanhsin __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("tanhsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_fm;
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_tanhsin(__pyx_v_gen, 0, &__pyx_t_2); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4619, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4619, __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("pysndlib.generators.tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4629
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_tanhsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an tanhsin
 */

static PyObject *__pyx_pw_8pysndlib_10generators_513is_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_tanhsin(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4636
 *     :rtype: bool
 *     """
 *     return isinstance(gen, Tanhsin)             # <<<<<<<<<<<<<<
 * #
 * # # # # #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_Tanhsin); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4629
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_tanhsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an tanhsin
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_513is_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
PyDoc_STRVAR(__pyx_doc_8pysndlib_10generators_512is_tanhsin, "\n    returns True if gen is an tanhsin\n\n    :param gen: gen\n    :rtype: bool\n    ");
static PyMethodDef __pyx_mdef_8pysndlib_10generators_513is_tanhsin = {"is_tanhsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_513is_tanhsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_8pysndlib_10generators_512is_tanhsin};
static PyObject *__pyx_pw_8pysndlib_10generators_513is_tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_tanhsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4629, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_tanhsin") < 0)) __PYX_ERR(0, 4629, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_tanhsin", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4629, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_512is_tanhsin(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_512is_tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_tanhsin", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_tanhsin(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4629, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4629, __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("pysndlib.generators.is_tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4691
 * 
 * # NOte float-vector-move!  and np.roll use opposite shift meanings
 *     def __init__(self, reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *         self.reader = reader
 *         self.last_moving_fft_window = False
 */

/* Python wrapper */
static int __pyx_pw_8pysndlib_10generators_9MovingFFT_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_8pysndlib_10generators_9MovingFFT_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_reader = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_hop = 0;
  PyObject *__pyx_v_outctr = 0;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reader,&__pyx_n_s_n,&__pyx_n_s_hop,&__pyx_n_s_outctr,0};
    values[1] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_512));
    values[2] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_128));
    values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reader)) != 0)) {
          (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4691, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4691, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hop);
          if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4691, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outctr);
          if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4691, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(0, 4691, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_reader = values[0];
    __pyx_v_n = values[1];
    __pyx_v_hop = values[2];
    __pyx_v_outctr = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4691, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return -1;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT___init__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self), __pyx_v_reader, __pyx_v_n, __pyx_v_hop, __pyx_v_outctr);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_8pysndlib_10generators_9MovingFFT___init__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v_reader, PyObject *__pyx_v_n, PyObject *__pyx_v_hop, PyObject *__pyx_v_outctr) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  int __pyx_t_7;
  Py_ssize_t __pyx_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 1);

  /* "pysndlib/generators.pyx":4692
 * # NOte float-vector-move!  and np.roll use opposite shift meanings
 *     def __init__(self, reader, n=512, hop=128, outctr=0):
 *         self.reader = reader             # <<<<<<<<<<<<<<
 *         self.last_moving_fft_window = False
 *         self.n = n
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reader, __pyx_v_reader) < 0) __PYX_ERR(0, 4692, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4693
 *     def __init__(self, reader, n=512, hop=128, outctr=0):
 *         self.reader = reader
 *         self.last_moving_fft_window = False             # <<<<<<<<<<<<<<
 *         self.n = n
 *         self.hop = hop
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window, Py_False) < 0) __PYX_ERR(0, 4693, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4694
 *         self.reader = reader
 *         self.last_moving_fft_window = False
 *         self.n = n             # <<<<<<<<<<<<<<
 *         self.hop = hop
 *         self.outctr = outctr
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n, __pyx_v_n) < 0) __PYX_ERR(0, 4694, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4695
 *         self.last_moving_fft_window = False
 *         self.n = n
 *         self.hop = hop             # <<<<<<<<<<<<<<
 *         self.outctr = outctr
 *         self.rl = np.zeros(self.n)
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hop, __pyx_v_hop) < 0) __PYX_ERR(0, 4695, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4696
 *         self.n = n
 *         self.hop = hop
 *         self.outctr = outctr             # <<<<<<<<<<<<<<
 *         self.rl = np.zeros(self.n)
 *         self.im = np.zeros(self.n)
 */
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr, __pyx_v_outctr) < 0) __PYX_ERR(0, 4696, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4697
 *         self.hop = hop
 *         self.outctr = outctr
 *         self.rl = np.zeros(self.n)             # <<<<<<<<<<<<<<
 *         self.im = np.zeros(self.n)
 *         self.data = np.zeros(self.n)
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl, __pyx_t_1) < 0) __PYX_ERR(0, 4697, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4698
 *         self.outctr = outctr
 *         self.rl = np.zeros(self.n)
 *         self.im = np.zeros(self.n)             # <<<<<<<<<<<<<<
 *         self.data = np.zeros(self.n)
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_im, __pyx_t_1) < 0) __PYX_ERR(0, 4698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4699
 *         self.rl = np.zeros(self.n)
 *         self.im = np.zeros(self.n)
 *         self.data = np.zeros(self.n)             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(self.last_moving_fft_window, np.ndarray) and len(self.last_moving_fft_window) == self.n:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4699, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data, __pyx_t_1) < 0) __PYX_ERR(0, 4699, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4701
 *         self.data = np.zeros(self.n)
 * 
 *         if isinstance(self.last_moving_fft_window, np.ndarray) and len(self.last_moving_fft_window) == self.n:             # <<<<<<<<<<<<<<
 *             self.window = self.last_moving_fft_window
 *         else:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_TypeCheck(__pyx_t_1, __pyx_ptype_5numpy_ndarray); 
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(0, 4701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __pyx_t_7;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_6) {

    /* "pysndlib/generators.pyx":4702
 * 
 *         if isinstance(self.last_moving_fft_window, np.ndarray) and len(self.last_moving_fft_window) == self.n:
 *             self.window = self.last_moving_fft_window             # <<<<<<<<<<<<<<
 *         else:
 *             self.last_moving_fft_window = clm.make_fft_window(clm.Window.HAMMING, self.n)
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_window, __pyx_t_2) < 0) __PYX_ERR(0, 4702, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pysndlib/generators.pyx":4701
 *         self.data = np.zeros(self.n)
 * 
 *         if isinstance(self.last_moving_fft_window, np.ndarray) and len(self.last_moving_fft_window) == self.n:             # <<<<<<<<<<<<<<
 *             self.window = self.last_moving_fft_window
 *         else:
 */
    goto __pyx_L3;
  }

  /* "pysndlib/generators.pyx":4704
 *             self.window = self.last_moving_fft_window
 *         else:
 *             self.last_moving_fft_window = clm.make_fft_window(clm.Window.HAMMING, self.n)             # <<<<<<<<<<<<<<
 *             self.window = self.last_moving_fft_window
 *         self.window *= 2.0 / (.54 * self.n)
 */
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4704, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = ((PyObject *)__pyx_f_8pysndlib_3clm_make_fft_window(__pyx_e_8pysndlib_3clm_HAMMING, __pyx_t_5, 0, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window, __pyx_t_2) < 0) __PYX_ERR(0, 4704, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pysndlib/generators.pyx":4705
 *         else:
 *             self.last_moving_fft_window = clm.make_fft_window(clm.Window.HAMMING, self.n)
 *             self.window = self.last_moving_fft_window             # <<<<<<<<<<<<<<
 *         self.window *= 2.0 / (.54 * self.n)
 *         self.outctr = self.n + 1
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_last_moving_fft_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_window, __pyx_t_2) < 0) __PYX_ERR(0, 4705, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;

  /* "pysndlib/generators.pyx":4706
 *             self.last_moving_fft_window = clm.make_fft_window(clm.Window.HAMMING, self.n)
 *             self.window = self.last_moving_fft_window
 *         self.window *= 2.0 / (.54 * self.n)             # <<<<<<<<<<<<<<
 *         self.outctr = self.n + 1
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_window); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyNumber_Multiply(__pyx_float__54, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_TrueDivideCObj(__pyx_float_2_0, __pyx_t_1, 2.0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_window, __pyx_t_1) < 0) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4707
 *             self.window = self.last_moving_fft_window
 *         self.window *= 2.0 / (.54 * self.n)
 *         self.outctr = self.n + 1             # <<<<<<<<<<<<<<
 * 
 *     cpdef cython.double next(self, cython.double x=0):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr, __pyx_t_3) < 0) __PYX_ERR(0, 4707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":4691
 * 
 * # NOte float-vector-move!  and np.roll use opposite shift meanings
 *     def __init__(self, reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *         self.reader = reader
 *         self.last_moving_fft_window = False
 */

  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4709
 *         self.outctr = self.n + 1
 * 
 *     cpdef cython.double next(self, cython.double x=0):             # <<<<<<<<<<<<<<
 *         new_data = False
 *         cdef cython.long i = 0
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_9MovingFFT_next(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_9MovingFFT_next *__pyx_optional_args) {
  double __pyx_v_x = ((double)0.0);
  int __pyx_v_new_data;
  long __pyx_v_i;
  PyObject *__pyx_v_mid = NULL;
  double __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_t_6;
  double __pyx_t_7;
  int __pyx_t_8;
  long __pyx_t_9;
  long __pyx_t_10;
  long __pyx_t_11;
  long __pyx_t_12;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_x = __pyx_optional_args->x;
    }
  }
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_next); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9MovingFFT_3next)) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4709, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_4 = __pyx_t_1; __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[2] = {__pyx_t_5, __pyx_t_3};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_4, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4709, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4709, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_r = __pyx_t_7;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4710
 * 
 *     cpdef cython.double next(self, cython.double x=0):
 *         new_data = False             # <<<<<<<<<<<<<<
 *         cdef cython.long i = 0
 *         if self.outctr >= self.hop:
 */
  __pyx_v_new_data = 0;

  /* "pysndlib/generators.pyx":4711
 *     cpdef cython.double next(self, cython.double x=0):
 *         new_data = False
 *         cdef cython.long i = 0             # <<<<<<<<<<<<<<
 *         if self.outctr >= self.hop:
 *             if self.outctr > self.n:
 */
  __pyx_v_i = 0;

  /* "pysndlib/generators.pyx":4712
 *         new_data = False
 *         cdef cython.long i = 0
 *         if self.outctr >= self.hop:             # <<<<<<<<<<<<<<
 *             if self.outctr > self.n:
 *                 for i in range(self.n):
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4712, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 4712, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_8) {

    /* "pysndlib/generators.pyx":4713
 *         cdef cython.long i = 0
 *         if self.outctr >= self.hop:
 *             if self.outctr > self.n:             # <<<<<<<<<<<<<<
 *                 for i in range(self.n):
 *                     self.data[i] = clm.readin(self.reader)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_8) {

      /* "pysndlib/generators.pyx":4714
 *         if self.outctr >= self.hop:
 *             if self.outctr > self.n:
 *                 for i in range(self.n):             # <<<<<<<<<<<<<<
 *                     self.data[i] = clm.readin(self.reader)
 *             else:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4714, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_9 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 4714, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_10 = __pyx_t_9;
      for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
        __pyx_v_i = __pyx_t_11;

        /* "pysndlib/generators.pyx":4715
 *             if self.outctr > self.n:
 *                 for i in range(self.n):
 *                     self.data[i] = clm.readin(self.reader)             # <<<<<<<<<<<<<<
 *             else:
 *               mid = self.n - self.hop
 */
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reader); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4715, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4715, __pyx_L1_error)
        __pyx_t_7 = __pyx_f_8pysndlib_3clm_readin(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4715, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4715, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4715, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely((__Pyx_SetItemInt(__pyx_t_2, __pyx_v_i, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(0, 4715, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }

      /* "pysndlib/generators.pyx":4713
 *         cdef cython.long i = 0
 *         if self.outctr >= self.hop:
 *             if self.outctr > self.n:             # <<<<<<<<<<<<<<
 *                 for i in range(self.n):
 *                     self.data[i] = clm.readin(self.reader)
 */
      goto __pyx_L4;
    }

    /* "pysndlib/generators.pyx":4717
 *                     self.data[i] = clm.readin(self.reader)
 *             else:
 *               mid = self.n - self.hop             # <<<<<<<<<<<<<<
 *               self.data = np.roll(self.data, -self.hop)
 *               for i in range(mid,self.n):
 */
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4717, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4717, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4717, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_v_mid = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "pysndlib/generators.pyx":4718
 *             else:
 *               mid = self.n - self.hop
 *               self.data = np.roll(self.data, -self.hop)             # <<<<<<<<<<<<<<
 *               for i in range(mid,self.n):
 *                 self.data[i] = clm.readin(self.reader)
 */
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_roll); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hop); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      #if CYTHON_UNPACK_METHODS
      if (unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #endif
      {
        PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_5};
        __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data, __pyx_t_4) < 0) __PYX_ERR(0, 4718, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

      /* "pysndlib/generators.pyx":4719
 *               mid = self.n - self.hop
 *               self.data = np.roll(self.data, -self.hop)
 *               for i in range(mid,self.n):             # <<<<<<<<<<<<<<
 *                 self.data[i] = clm.readin(self.reader)
 * 
 */
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4719, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = __Pyx_PyInt_As_long(__pyx_t_4); if (unlikely((__pyx_t_9 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 4719, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_10 = __Pyx_PyInt_As_long(__pyx_v_mid); if (unlikely((__pyx_t_10 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 4719, __pyx_L1_error)
      __pyx_t_11 = __pyx_t_9;
      for (__pyx_t_12 = __pyx_t_10; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
        __pyx_v_i = __pyx_t_12;

        /* "pysndlib/generators.pyx":4720
 *               self.data = np.roll(self.data, -self.hop)
 *               for i in range(mid,self.n):
 *                 self.data[i] = clm.readin(self.reader)             # <<<<<<<<<<<<<<
 * 
 *             self.outctr = 0
 */
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reader); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(0, 4720, __pyx_L1_error)
        __pyx_t_7 = __pyx_f_8pysndlib_3clm_readin(((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_4), 0); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (unlikely((__Pyx_SetItemInt(__pyx_t_1, __pyx_v_i, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0))) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
    }
    __pyx_L4:;

    /* "pysndlib/generators.pyx":4722
 *                 self.data[i] = clm.readin(self.reader)
 * 
 *             self.outctr = 0             # <<<<<<<<<<<<<<
 *             new_data = True
 *             self.im.fill(0.0)
 */
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr, __pyx_int_0) < 0) __PYX_ERR(0, 4722, __pyx_L1_error)

    /* "pysndlib/generators.pyx":4723
 * 
 *             self.outctr = 0
 *             new_data = True             # <<<<<<<<<<<<<<
 *             self.im.fill(0.0)
 *             np.copyto(self.rl, self.data)
 */
    __pyx_v_new_data = 1;

    /* "pysndlib/generators.pyx":4724
 *             self.outctr = 0
 *             new_data = True
 *             self.im.fill(0.0)             # <<<<<<<<<<<<<<
 *             np.copyto(self.rl, self.data)
 *             #self.rl = self.data[0:self.n]
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_im); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4724, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4724, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_1, __pyx_float_0_0};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 1+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4724, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "pysndlib/generators.pyx":4725
 *             new_data = True
 *             self.im.fill(0.0)
 *             np.copyto(self.rl, self.data)             # <<<<<<<<<<<<<<
 *             #self.rl = self.data[0:self.n]
 *             self.rl *= self.window
 */
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copyto); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    __pyx_t_6 = 0;
    #if CYTHON_UNPACK_METHODS
    if (unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[3] = {__pyx_t_3, __pyx_t_5, __pyx_t_2};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_1, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "pysndlib/generators.pyx":4727
 *             np.copyto(self.rl, self.data)
 *             #self.rl = self.data[0:self.n]
 *             self.rl *= self.window             # <<<<<<<<<<<<<<
 *             clm.mus_fft(self.rl, self.im, self.n, 1)
 *             clm.mus_rectangular2polar(self.rl, self.im)
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4727, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_window); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4727, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_InPlaceMultiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4727, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl, __pyx_t_2) < 0) __PYX_ERR(0, 4727, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pysndlib/generators.pyx":4728
 *             #self.rl = self.data[0:self.n]
 *             self.rl *= self.window
 *             clm.mus_fft(self.rl, self.im, self.n, 1)             # <<<<<<<<<<<<<<
 *             clm.mus_rectangular2polar(self.rl, self.im)
 *         self.outctr += 1
 */
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4728, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_im); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4728, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4728, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = ((PyObject *)__pyx_f_8pysndlib_3clm_mus_fft(((PyArrayObject *)__pyx_t_2), ((PyArrayObject *)__pyx_t_1), __pyx_t_6, 1, 0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "pysndlib/generators.pyx":4729
 *             self.rl *= self.window
 *             clm.mus_fft(self.rl, self.im, self.n, 1)
 *             clm.mus_rectangular2polar(self.rl, self.im)             # <<<<<<<<<<<<<<
 *         self.outctr += 1
 *         return new_data
 */
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4729, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_im); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4729, __pyx_L1_error)
    __pyx_t_2 = ((PyObject *)__pyx_f_8pysndlib_3clm_mus_rectangular2polar(((PyArrayObject *)__pyx_t_4), ((PyArrayObject *)__pyx_t_1), 0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4729, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "pysndlib/generators.pyx":4712
 *         new_data = False
 *         cdef cython.long i = 0
 *         if self.outctr >= self.hop:             # <<<<<<<<<<<<<<
 *             if self.outctr > self.n:
 *                 for i in range(self.n):
 */
  }

  /* "pysndlib/generators.pyx":4730
 *             clm.mus_fft(self.rl, self.im, self.n, 1)
 *             clm.mus_rectangular2polar(self.rl, self.im)
 *         self.outctr += 1             # <<<<<<<<<<<<<<
 *         return new_data
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_outctr, __pyx_t_1) < 0) __PYX_ERR(0, 4730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "pysndlib/generators.pyx":4731
 *             clm.mus_rectangular2polar(self.rl, self.im)
 *         self.outctr += 1
 *         return new_data             # <<<<<<<<<<<<<<
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 */
  __pyx_r = __pyx_v_new_data;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4709
 *         self.outctr = self.n + 1
 * 
 *     cpdef cython.double next(self, cython.double x=0):             # <<<<<<<<<<<<<<
 *         new_data = False
 *         cdef cython.long i = 0
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_mid);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingFFT_3next = {"next", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_3next, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_3next(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  double __pyx_v_x;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("next (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x);
          if (value) { values[0] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4709, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "next") < 0)) __PYX_ERR(0, 4709, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_x = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4709, __pyx_L3_error)
    } else {
      __pyx_v_x = ((double)0.0);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("next", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4709, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_2next(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self), __pyx_v_x);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_2next(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, double __pyx_v_x) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("next", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_x;
  __pyx_t_1 = __pyx_vtabptr_8pysndlib_10generators_MovingFFT->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 1, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4709, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4709, __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("pysndlib.generators.MovingFFT.next", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4733
 *         return new_data
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_5__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  double __pyx_v_insig;
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__call__ (wrapper)", 0);
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_insig,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_insig);
          if (value) { values[0] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4733, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__call__") < 0)) __PYX_ERR(0, 4733, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    if (values[0]) {
      __pyx_v_insig = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_insig == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4733, __pyx_L3_error)
    } else {
      __pyx_v_insig = ((double)0.);
    }
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__call__", 0, 0, 1, __pyx_nargs); __PYX_ERR(0, 4733, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_4__call__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self), __pyx_v_insig);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_4__call__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, double __pyx_v_insig) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__call__", 1);

  /* "pysndlib/generators.pyx":4734
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:
 *         return self.next(insig)             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 1;
  __pyx_t_2.fm = __pyx_v_insig;
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, &__pyx_t_2); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4734, __pyx_L1_error)
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4733
 *         return new_data
 * 
 *     def __call__(self, cython.double insig=0.) -> cython.double:             # <<<<<<<<<<<<<<
 *         return self.next(insig)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4736
 *         return self.next(insig)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_data(self) -> cython.double:
 *         return self.data
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_8mus_data_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_8mus_data_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_8mus_data___get__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_8mus_data___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":4738
 *     @property
 *     def mus_data(self) -> cython.double:
 *         return self.data             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_data); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4738, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4736
 *         return self.next(insig)
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_data(self) -> cython.double:
 *         return self.data
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.mus_data.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4740
 *         return self.data
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_xcoeffs(self) -> cython.double:
 *         return self.rl
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs___get__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":4742
 *     @property
 *     def mus_xcoeffs(self) -> cython.double:
 *         return self.rl             # <<<<<<<<<<<<<<
 * 
 *     @property
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_rl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4740
 *         return self.data
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_xcoeffs(self) -> cython.double:
 *         return self.rl
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.mus_xcoeffs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4744
 *         return self.rl
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_ycoeffs(self) -> cython.double:
 *         return self.im
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs_1__get__(PyObject *__pyx_v_self); /*proto*/
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs_1__get__(PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
  __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs___get__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs___get__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__get__", 1);

  /* "pysndlib/generators.pyx":4746
 *     @property
 *     def mus_ycoeffs(self) -> cython.double:
 *         return self.im             # <<<<<<<<<<<<<<
 * 
 *     cpdef mus_run(self, arg1, arg2):
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_im); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4744
 *         return self.rl
 * 
 *     @property             # <<<<<<<<<<<<<<
 *     def mus_ycoeffs(self) -> cython.double:
 *         return self.im
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.mus_ycoeffs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4748
 *         return self.im
 * 
 *     cpdef mus_run(self, arg1, arg2):             # <<<<<<<<<<<<<<
 *         self.next()
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_7mus_run(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyObject *__pyx_f_8pysndlib_10generators_9MovingFFT_mus_run(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_arg1, CYTHON_UNUSED PyObject *__pyx_v_arg2, int __pyx_skip_dispatch) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mus_run", 1);
  /* Check if called by wrapper */
  if (unlikely(__pyx_skip_dispatch)) ;
  /* Check if overridden in Python */
  else if (unlikely((Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0) || __Pyx_PyType_HasFeature(Py_TYPE(((PyObject *)__pyx_v_self)), (Py_TPFLAGS_IS_ABSTRACT | Py_TPFLAGS_HEAPTYPE)))) {
    #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    static PY_UINT64_T __pyx_tp_dict_version = __PYX_DICT_VERSION_INIT, __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
    if (unlikely(!__Pyx_object_dict_version_matches(((PyObject *)__pyx_v_self), __pyx_tp_dict_version, __pyx_obj_dict_version))) {
      PY_UINT64_T __pyx_typedict_guard = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      #endif
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mus_run); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4748, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (!__Pyx_IsSameCFunction(__pyx_t_1, (void*) __pyx_pw_8pysndlib_10generators_9MovingFFT_7mus_run)) {
        __Pyx_XDECREF(__pyx_r);
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_3 = __pyx_t_1; __pyx_t_4 = NULL;
        __pyx_t_5 = 0;
        #if CYTHON_UNPACK_METHODS
        if (unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
            __pyx_t_5 = 1;
          }
        }
        #endif
        {
          PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_v_arg1, __pyx_v_arg2};
          __pyx_t_2 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 2+__pyx_t_5);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __pyx_r = __pyx_t_2;
        __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L0;
      }
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
      __pyx_tp_dict_version = __Pyx_get_tp_dict_version(((PyObject *)__pyx_v_self));
      __pyx_obj_dict_version = __Pyx_get_object_dict_version(((PyObject *)__pyx_v_self));
      if (unlikely(__pyx_typedict_guard != __pyx_tp_dict_version)) {
        __pyx_tp_dict_version = __pyx_obj_dict_version = __PYX_DICT_VERSION_INIT;
      }
      #endif
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS
    }
    #endif
  }

  /* "pysndlib/generators.pyx":4749
 * 
 *     cpdef mus_run(self, arg1, arg2):
 *         self.next()             # <<<<<<<<<<<<<<
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):
 */
  ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_self), 0, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4749, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4748
 *         return self.im
 * 
 *     cpdef mus_run(self, arg1, arg2):             # <<<<<<<<<<<<<<
 *         self.next()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.mus_run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_7mus_run(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingFFT_7mus_run = {"mus_run", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_7mus_run, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_7mus_run(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_arg1 = 0;
  PyObject *__pyx_v_arg2 = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[2] = {0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("mus_run (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_arg1,&__pyx_n_s_arg2,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arg1)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4748, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_arg2)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4748, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("mus_run", 1, 2, 2, 1); __PYX_ERR(0, 4748, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "mus_run") < 0)) __PYX_ERR(0, 4748, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 2)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
    }
    __pyx_v_arg1 = values[0];
    __pyx_v_arg2 = values[1];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("mus_run", 1, 2, 2, __pyx_nargs); __PYX_ERR(0, 4748, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.mus_run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_6mus_run(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self), __pyx_v_arg1, __pyx_v_arg2);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_6mus_run(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v_arg1, PyObject *__pyx_v_arg2) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("mus_run", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_9MovingFFT_mus_run(__pyx_v_self, __pyx_v_arg1, __pyx_v_arg2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4748, __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("pysndlib.generators.MovingFFT.mus_run", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingFFT_9__reduce_cython__ = {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_9__reduce_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  if (unlikely(__pyx_nargs > 0)) {
    __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
  if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_8__reduce_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_8__reduce_cython__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self) {
  PyObject *__pyx_v_state = 0;
  PyObject *__pyx_v__dict = 0;
  int __pyx_v_use_setstate;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__reduce_cython__", 1);

  /* "(tree fragment)":5
 *     cdef object _dict
 *     cdef bint use_setstate
 *     state = ()             # <<<<<<<<<<<<<<
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 */
  __Pyx_INCREF(__pyx_empty_tuple);
  __pyx_v_state = __pyx_empty_tuple;

  /* "(tree fragment)":6
 *     cdef bint use_setstate
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)             # <<<<<<<<<<<<<<
 *     if _dict is not None:
 *         state += (_dict,)
 */
  __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v__dict = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
  __pyx_t_2 = (__pyx_v__dict != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":8
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:
 *         state += (_dict,)             # <<<<<<<<<<<<<<
 *         use_setstate = True
 *     else:
 */
    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v__dict);
    __Pyx_GIVEREF(__pyx_v__dict);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;

    /* "(tree fragment)":9
 *     if _dict is not None:
 *         state += (_dict,)
 *         use_setstate = True             # <<<<<<<<<<<<<<
 *     else:
 *         use_setstate = False
 */
    __pyx_v_use_setstate = 1;

    /* "(tree fragment)":7
 *     state = ()
 *     _dict = getattr(self, '__dict__', None)
 *     if _dict is not None:             # <<<<<<<<<<<<<<
 *         state += (_dict,)
 *         use_setstate = True
 */
    goto __pyx_L3;
  }

  /* "(tree fragment)":11
 *         use_setstate = True
 *     else:
 *         use_setstate = False             # <<<<<<<<<<<<<<
 *     if use_setstate:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, None), state
 */
  /*else*/ {
    __pyx_v_use_setstate = 0;
  }
  __pyx_L3:;

  /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  if (__pyx_v_use_setstate) {

    /* "(tree fragment)":13
 *         use_setstate = False
 *     if use_setstate:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, None), state             # <<<<<<<<<<<<<<
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_MovingFFT); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(Py_None);
    __Pyx_GIVEREF(Py_None);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
    __pyx_t_3 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;

    /* "(tree fragment)":12
 *     else:
 *         use_setstate = False
 *     if use_setstate:             # <<<<<<<<<<<<<<
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, None), state
 *     else:
 */
  }

  /* "(tree fragment)":15
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, None), state
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)             # <<<<<<<<<<<<<<
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)
 */
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_MovingFFT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_int_238750788);
    __Pyx_GIVEREF(__pyx_int_238750788);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_238750788)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_INCREF(__pyx_v_state);
    __Pyx_GIVEREF(__pyx_v_state);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
    __Pyx_GIVEREF(__pyx_t_1);
    if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_state);
  __Pyx_XDECREF(__pyx_v__dict);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_9MovingFFT_11__setstate_cython__ = {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_9MovingFFT_11__setstate_cython__(PyObject *__pyx_v_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v___pyx_state = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_9MovingFFT_10__setstate_cython__(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v_self), __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_9MovingFFT_10__setstate_cython__(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__setstate_cython__", 1);

  /* "(tree fragment)":17
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)             # <<<<<<<<<<<<<<
 */
  if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
  __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingFFT__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("pysndlib.generators.MovingFFT.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4751
 *         self.next()
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_515make_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_f_8pysndlib_10generators_make_moving_fft(struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_reader, CYTHON_UNUSED int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_moving_fft *__pyx_optional_args) {
  PyObject *__pyx_v_n = ((PyObject *)__pyx_int_512);
  PyObject *__pyx_v_hop = ((PyObject *)__pyx_int_128);
  PyObject *__pyx_v_outctr = ((PyObject *)__pyx_int_0);
  struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_fft", 1);
  if (__pyx_optional_args) {
    if (__pyx_optional_args->__pyx_n > 0) {
      __pyx_v_n = __pyx_optional_args->n;
      if (__pyx_optional_args->__pyx_n > 1) {
        __pyx_v_hop = __pyx_optional_args->hop;
        if (__pyx_optional_args->__pyx_n > 2) {
          __pyx_v_outctr = __pyx_optional_args->outctr;
        }
      }
    }
  }

  /* "pysndlib/generators.pyx":4752
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):
 *     return MovingFFT(reader, n, hop, outctr)             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):
 */
  __Pyx_XDECREF((PyObject *)__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF((PyObject *)__pyx_v_reader);
  __Pyx_GIVEREF((PyObject *)__pyx_v_reader);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_reader))) __PYX_ERR(0, 4752, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_n);
  __Pyx_GIVEREF(__pyx_v_n);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n)) __PYX_ERR(0, 4752, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_hop);
  __Pyx_GIVEREF(__pyx_v_hop);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_hop)) __PYX_ERR(0, 4752, __pyx_L1_error);
  __Pyx_INCREF(__pyx_v_outctr);
  __Pyx_GIVEREF(__pyx_v_outctr);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_outctr)) __PYX_ERR(0, 4752, __pyx_L1_error);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_r = ((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_t_2);
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4751
 *         self.next()
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pysndlib.generators.make_moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF((PyObject *)__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_515make_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_515make_moving_fft = {"make_moving_fft", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_515make_moving_fft, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_515make_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_reader = 0;
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_hop = 0;
  PyObject *__pyx_v_outctr = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[4] = {0,0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("make_moving_fft (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reader,&__pyx_n_s_n,&__pyx_n_s_hop,&__pyx_n_s_outctr,0};
    values[1] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_512));
    values[2] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_128));
    values[3] = __Pyx_Arg_NewRef_FASTCALL(((PyObject *)__pyx_int_0));
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_reader)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4751, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_n);
          if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4751, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_hop);
          if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4751, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_outctr);
          if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; }
          else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4751, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "make_moving_fft") < 0)) __PYX_ERR(0, 4751, __pyx_L3_error)
      }
    } else {
      switch (__pyx_nargs) {
        case  4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_reader = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)values[0]);
    __pyx_v_n = values[1];
    __pyx_v_hop = values[2];
    __pyx_v_outctr = values[3];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("make_moving_fft", 0, 1, 4, __pyx_nargs); __PYX_ERR(0, 4751, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.make_moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_reader), __pyx_ptype_8pysndlib_3clm_mus_any, 1, "reader", 0))) __PYX_ERR(0, 4751, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_514make_moving_fft(__pyx_self, __pyx_v_reader, __pyx_v_n, __pyx_v_hop, __pyx_v_outctr);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_514make_moving_fft(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_3clm_mus_any *__pyx_v_reader, PyObject *__pyx_v_n, PyObject *__pyx_v_hop, PyObject *__pyx_v_outctr) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  struct __pyx_opt_args_8pysndlib_10generators_make_moving_fft __pyx_t_2;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_moving_fft", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_2.__pyx_n = 3;
  __pyx_t_2.n = __pyx_v_n;
  __pyx_t_2.hop = __pyx_v_hop;
  __pyx_t_2.outctr = __pyx_v_outctr;
  __pyx_t_1 = ((PyObject *)__pyx_f_8pysndlib_10generators_make_moving_fft(__pyx_v_reader, 0, &__pyx_t_2)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4751, __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("pysndlib.generators.make_moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4754
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):             # <<<<<<<<<<<<<<
 *     return gen.next()
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_517moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static double __pyx_f_8pysndlib_10generators_moving_fft(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  double __pyx_r;
  double __pyx_t_1;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* "pysndlib/generators.pyx":4755
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):
 *     return gen.next()             # <<<<<<<<<<<<<<
 * 
 * cpdef cython.bint is_moving_fft(gen):
 */
  __pyx_t_1 = ((struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT *)__pyx_v_gen->__pyx_base.__pyx_vtab)->__pyx_base.next(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v_gen), 0, NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4755, __pyx_L1_error)
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4754
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):             # <<<<<<<<<<<<<<
 *     return gen.next()
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("pysndlib.generators.moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_517moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_517moving_fft = {"moving_fft", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_517moving_fft, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_517moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("moving_fft (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4754, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "moving_fft") < 0)) __PYX_ERR(0, 4754, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = ((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)values[0]);
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("moving_fft", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4754, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gen), __pyx_ptype_8pysndlib_10generators_MovingFFT, 1, "gen", 0))) __PYX_ERR(0, 4754, __pyx_L1_error)
  __pyx_r = __pyx_pf_8pysndlib_10generators_516moving_fft(__pyx_self, __pyx_v_gen);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_516moving_fft(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  double __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("moving_fft", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_moving_fft(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4754, __pyx_L1_error)
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4754, __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("pysndlib.generators.moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "pysndlib/generators.pyx":4757
 *     return gen.next()
 * 
 * cpdef cython.bint is_moving_fft(gen):             # <<<<<<<<<<<<<<
 *     return isinstance(gen, MovingFFT)
 * 
 */

static PyObject *__pyx_pw_8pysndlib_10generators_519is_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static int __pyx_f_8pysndlib_10generators_is_moving_fft(PyObject *__pyx_v_gen, CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  int __pyx_t_1;

  /* "pysndlib/generators.pyx":4758
 * 
 * cpdef cython.bint is_moving_fft(gen):
 *     return isinstance(gen, MovingFFT)             # <<<<<<<<<<<<<<
 * 
 * # # # TODO --------------- moving-spectrum ---------------- #
 */
  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_gen, __pyx_ptype_8pysndlib_10generators_MovingFFT); 
  __pyx_r = __pyx_t_1;
  goto __pyx_L0;

  /* "pysndlib/generators.pyx":4757
 *     return gen.next()
 * 
 * cpdef cython.bint is_moving_fft(gen):             # <<<<<<<<<<<<<<
 *     return isinstance(gen, MovingFFT)
 * 
 */

  /* function exit code */
  __pyx_L0:;
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_519is_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_519is_moving_fft = {"is_moving_fft", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_519is_moving_fft, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_519is_moving_fft(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v_gen = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[1] = {0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("is_moving_fft (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gen,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_gen)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 4757, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "is_moving_fft") < 0)) __PYX_ERR(0, 4757, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 1)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
    }
    __pyx_v_gen = values[0];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("is_moving_fft", 1, 1, 1, __pyx_nargs); __PYX_ERR(0, 4757, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.is_moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_518is_moving_fft(__pyx_self, __pyx_v_gen);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_518is_moving_fft(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_gen) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("is_moving_fft", 1);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_8pysndlib_10generators_is_moving_fft(__pyx_v_gen, 0); if (unlikely(__pyx_t_1 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4757, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4757, __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("pysndlib.generators.is_moving_fft", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_CLMGenerator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_521__pyx_unpickle_CLMGenerator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_521__pyx_unpickle_CLMGenerator = {"__pyx_unpickle_CLMGenerator", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_521__pyx_unpickle_CLMGenerator, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_521__pyx_unpickle_CLMGenerator(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_CLMGenerator (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CLMGenerator", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CLMGenerator", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_CLMGenerator") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_CLMGenerator", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_CLMGenerator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_520__pyx_unpickle_CLMGenerator(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_520__pyx_unpickle_CLMGenerator(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CLMGenerator", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__24, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_CLMGenerator__set_state(((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = CLMGenerator.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_CLMGenerator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_CLMGenerator", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_CLMGenerator__set_state(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __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_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_CLMGenerator__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __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, 13, __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;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* 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("pysndlib.generators.__pyx_unpickle_CLMGenerator__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_523__pyx_unpickle_Nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_523__pyx_unpickle_Nssb = {"__pyx_unpickle_Nssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_523__pyx_unpickle_Nssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_523__pyx_unpickle_Nssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_522__pyx_unpickle_Nssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_522__pyx_unpickle_Nssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Nssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nssb__set_state(<Nssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nssb__set_state(Nssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nxysin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_525__pyx_unpickle_Nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_525__pyx_unpickle_Nxysin = {"__pyx_unpickle_Nxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_525__pyx_unpickle_Nxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_525__pyx_unpickle_Nxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxysin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxysin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nxysin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxysin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_524__pyx_unpickle_Nxysin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_524__pyx_unpickle_Nxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxysin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xc249d14, 0xff03f78, 0x73a692b):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__26, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xc249d14, 0xff03f78, 0x73a692b):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nxysin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xc249d14, 0xff03f78, 0x73a692b):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xc249d14, 0xff03f78, 0x73a692b):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nxysin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxysin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxysin__set_state(((struct __pyx_obj_8pysndlib_10generators_Nxysin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xc249d14, 0xff03f78, 0x73a692b) = (angle, frequency, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxysin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxysin__set_state(struct __pyx_obj_8pysndlib_10generators_Nxysin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxysin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 5);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxysin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_527__pyx_unpickle_Nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_527__pyx_unpickle_Nxycos = {"__pyx_unpickle_Nxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_527__pyx_unpickle_Nxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_527__pyx_unpickle_Nxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxycos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxycos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nxycos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxycos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_526__pyx_unpickle_Nxycos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_526__pyx_unpickle_Nxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxycos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxycos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxycos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxycos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxycos__set_state(((struct __pyx_obj_8pysndlib_10generators_Nxycos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxycos__set_state(struct __pyx_obj_8pysndlib_10generators_Nxycos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxycos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxycos__set_state(<Nxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxycos__set_state(Nxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxycos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nxy1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_529__pyx_unpickle_Nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_529__pyx_unpickle_Nxy1cos = {"__pyx_unpickle_Nxy1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_529__pyx_unpickle_Nxy1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_529__pyx_unpickle_Nxy1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nxy1cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_528__pyx_unpickle_Nxy1cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_528__pyx_unpickle_Nxy1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1cos__set_state(((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxy1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1cos__set_state(struct __pyx_obj_8pysndlib_10generators_Nxy1cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nxy1sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_531__pyx_unpickle_Nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_531__pyx_unpickle_Nxy1sin = {"__pyx_unpickle_Nxy1sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_531__pyx_unpickle_Nxy1sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_531__pyx_unpickle_Nxy1sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1sin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1sin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nxy1sin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nxy1sin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_530__pyx_unpickle_Nxy1sin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_530__pyx_unpickle_Nxy1sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1sin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1sin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1sin__set_state(((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nxy1sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxy1sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nxy1sin__set_state(struct __pyx_obj_8pysndlib_10generators_Nxy1sin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nxy1sin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxy1sin__set_state(<Nxy1sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1sin__set_state(Nxy1sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nxy1sin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Noddsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_533__pyx_unpickle_Noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_533__pyx_unpickle_Noddsin = {"__pyx_unpickle_Noddsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_533__pyx_unpickle_Noddsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_533__pyx_unpickle_Noddsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddsin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddsin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Noddsin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddsin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_532__pyx_unpickle_Noddsin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_532__pyx_unpickle_Noddsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddsin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__24, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = Noddsin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Noddsin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = Noddsin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddsin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = Noddsin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Noddsin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddsin__set_state(((struct __pyx_obj_8pysndlib_10generators_Noddsin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = Noddsin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Noddsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddsin__set_state(struct __pyx_obj_8pysndlib_10generators_Noddsin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __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_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddsin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __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, 13, __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;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* 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("pysndlib.generators.__pyx_unpickle_Noddsin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Noddcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_535__pyx_unpickle_Noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_535__pyx_unpickle_Noddcos = {"__pyx_unpickle_Noddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_535__pyx_unpickle_Noddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_535__pyx_unpickle_Noddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Noddcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_534__pyx_unpickle_Noddcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_534__pyx_unpickle_Noddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Noddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Noddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Noddcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Noddcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddcos__set_state(struct __pyx_obj_8pysndlib_10generators_Noddcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Noddcos__set_state(<Noddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddcos__set_state(Noddcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Noddssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_537__pyx_unpickle_Noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_537__pyx_unpickle_Noddssb = {"__pyx_unpickle_Noddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_537__pyx_unpickle_Noddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_537__pyx_unpickle_Noddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Noddssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Noddssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_536__pyx_unpickle_Noddssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_536__pyx_unpickle_Noddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Noddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Noddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Noddssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Noddssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Noddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Noddssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Noddssb__set_state(struct __pyx_obj_8pysndlib_10generators_Noddssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Noddssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Noddssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ncos2(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_539__pyx_unpickle_Ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_539__pyx_unpickle_Ncos2 = {"__pyx_unpickle_Ncos2", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_539__pyx_unpickle_Ncos2, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_539__pyx_unpickle_Ncos2(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos2 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos2", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos2", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Ncos2") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos2", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_538__pyx_unpickle_Ncos2(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_538__pyx_unpickle_Ncos2(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos2", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos2.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Ncos2.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos2.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos2.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Ncos2.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos2__set_state(((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos2.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ncos2(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos2", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos2__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos2 *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos2__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 3);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ncos2__set_state(<Ncos2> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos2__set_state(Ncos2 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos2__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ncos4(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_541__pyx_unpickle_Ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_541__pyx_unpickle_Ncos4 = {"__pyx_unpickle_Ncos4", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_541__pyx_unpickle_Ncos4, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_541__pyx_unpickle_Ncos4(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos4 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos4", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos4", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Ncos4") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos4", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_540__pyx_unpickle_Ncos4(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_540__pyx_unpickle_Ncos4(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos4", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos4.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Ncos4.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos4.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos4.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Ncos4.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos4__set_state(((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos4.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ncos4(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos4", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos4__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos4 *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos4__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.n = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 3);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos4__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Npcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_543__pyx_unpickle_Npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_543__pyx_unpickle_Npcos = {"__pyx_unpickle_Npcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_543__pyx_unpickle_Npcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_543__pyx_unpickle_Npcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Npcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_542__pyx_unpickle_Npcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_542__pyx_unpickle_Npcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Npcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Npcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Npcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Npcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npcos__set_state(struct __pyx_obj_8pysndlib_10generators_Npcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Npcos__set_state(<Npcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npcos__set_state(Npcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ncos5(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_545__pyx_unpickle_Ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_545__pyx_unpickle_Ncos5 = {"__pyx_unpickle_Ncos5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_545__pyx_unpickle_Ncos5, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_545__pyx_unpickle_Ncos5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos5", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos5", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Ncos5") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ncos5", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_544__pyx_unpickle_Ncos5(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_544__pyx_unpickle_Ncos5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos5", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos5.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Ncos5.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos5.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos5), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos5.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Ncos5.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos5__set_state(((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Ncos5.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ncos5(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ncos5__set_state(struct __pyx_obj_8pysndlib_10generators_Ncos5 *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ncos5__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ncos5__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nsin5(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_547__pyx_unpickle_Nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_547__pyx_unpickle_Nsin5 = {"__pyx_unpickle_Nsin5", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_547__pyx_unpickle_Nsin5, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_547__pyx_unpickle_Nsin5(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsin5 (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsin5", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsin5", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nsin5") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsin5", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_546__pyx_unpickle_Nsin5(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_546__pyx_unpickle_Nsin5(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsin5", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__28, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Nsin5.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nsin5.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Nsin5.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsin5), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Nsin5.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nsin5.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nsin5__set_state(((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Nsin5.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nsin5(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsin5", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nsin5__set_state(struct __pyx_obj_8pysndlib_10generators_Nsin5 *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsin5__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nsin5__set_state(<Nsin5> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsin5__set_state(Nsin5 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsin5__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nrcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_549__pyx_unpickle_Nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_549__pyx_unpickle_Nrcos = {"__pyx_unpickle_Nrcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_549__pyx_unpickle_Nrcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_549__pyx_unpickle_Nrcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nrcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_548__pyx_unpickle_Nrcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_548__pyx_unpickle_Nrcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x5aa53a6, 0x70f2da1, 0x08105ee):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__29, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x5aa53a6, 0x70f2da1, 0x08105ee):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 *     __pyx_result = Nrcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x5aa53a6, 0x70f2da1, 0x08105ee):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nrcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x5aa53a6, 0x70f2da1, 0x08105ee):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 *     __pyx_result = Nrcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 *     __pyx_result = Nrcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nrcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nrcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Nrcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x5aa53a6, 0x70f2da1, 0x08105ee) = (angle, e1, e2, frequency, n, norm, r, r1, rr, trouble))" % __pyx_checksum
 *     __pyx_result = Nrcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nrcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nrcos__set_state(struct __pyx_obj_8pysndlib_10generators_Nrcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->e1 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->e2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r1 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->trouble = __pyx_t_3;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 10);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[10])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 10, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[10])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nrssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_551__pyx_unpickle_Nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_551__pyx_unpickle_Nrssb = {"__pyx_unpickle_Nrssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_551__pyx_unpickle_Nrssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_551__pyx_unpickle_Nrssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nrssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nrssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_550__pyx_unpickle_Nrssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_550__pyx_unpickle_Nrssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0e483d0, 0x8fd4715, 0x626c141):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__30, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0e483d0, 0x8fd4715, 0x626c141):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 *     __pyx_result = Nrssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x0e483d0, 0x8fd4715, 0x626c141):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nrssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0e483d0, 0x8fd4715, 0x626c141):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 *     __pyx_result = Nrssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 *     __pyx_result = Nrssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nrssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nrssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Nrssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0e483d0, 0x8fd4715, 0x626c141) = (angle, frequency, interp, n, norm, r, ratio, rn, rn1))" % __pyx_checksum
 *     __pyx_result = Nrssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nrssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nrssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nrssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nrssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->interp = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rn = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rn1 = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 9);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[9])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[9])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nrssb__set_state(<Nrssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrssb__set_state(Nrssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.ratio = __pyx_state[6]; __pyx_result.rn = __pyx_state[7]; __pyx_result.rn1 = __pyx_state[8]
 *     if len(__pyx_state) > 9 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nrssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nkssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_553__pyx_unpickle_Nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_553__pyx_unpickle_Nkssb = {"__pyx_unpickle_Nkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_553__pyx_unpickle_Nkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_553__pyx_unpickle_Nkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nkssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nkssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nkssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nkssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_552__pyx_unpickle_Nkssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_552__pyx_unpickle_Nkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nkssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa147321, 0x07b70fb, 0x7d65839):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__31, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa147321, 0x07b70fb, 0x7d65839):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nkssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xa147321, 0x07b70fb, 0x7d65839):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa147321, 0x07b70fb, 0x7d65839):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nkssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nkssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Nkssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa147321, 0x07b70fb, 0x7d65839) = (angle, frequency, interp, n, norm, ratio))" % __pyx_checksum
 *     __pyx_result = Nkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nkssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nkssb__set_state(struct __pyx_obj_8pysndlib_10generators_Nkssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nkssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->interp = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nkssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nsincos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_555__pyx_unpickle_Nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_555__pyx_unpickle_Nsincos = {"__pyx_unpickle_Nsincos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_555__pyx_unpickle_Nsincos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_555__pyx_unpickle_Nsincos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsincos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsincos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsincos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nsincos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nsincos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_554__pyx_unpickle_Nsincos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_554__pyx_unpickle_Nsincos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsincos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xaa0fd61, 0x24903a5, 0x0898231):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__32, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xaa0fd61, 0x24903a5, 0x0898231):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 *     __pyx_result = Nsincos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xaa0fd61, 0x24903a5, 0x0898231):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nsincos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xaa0fd61, 0x24903a5, 0x0898231):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 *     __pyx_result = Nsincos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsincos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 *     __pyx_result = Nsincos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nsincos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nsincos__set_state(((struct __pyx_obj_8pysndlib_10generators_Nsincos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xaa0fd61, 0x24903a5, 0x0898231) = (angle, cosn, frequency, n, n2, norm))" % __pyx_checksum
 *     __pyx_result = Nsincos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nsincos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsincos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nsincos__set_state(struct __pyx_obj_8pysndlib_10generators_Nsincos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nsincos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->cosn = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nsincos__set_state(<Nsincos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nsincos__set_state(Nsincos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosn = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.n2 = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nsincos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_N1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_557__pyx_unpickle_N1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_557__pyx_unpickle_N1cos = {"__pyx_unpickle_N1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_557__pyx_unpickle_N1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_557__pyx_unpickle_N1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_N1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_N1cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_N1cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_N1cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_N1cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_N1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_556__pyx_unpickle_N1cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_556__pyx_unpickle_N1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_N1cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = N1cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = N1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = N1cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_N1cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = N1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = N1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_N1cos__set_state(((struct __pyx_obj_8pysndlib_10generators_N1cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = N1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_N1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_N1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_N1cos__set_state(struct __pyx_obj_8pysndlib_10generators_N1cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_N1cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_N1cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Npos1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_559__pyx_unpickle_Npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_559__pyx_unpickle_Npos1cos = {"__pyx_unpickle_Npos1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_559__pyx_unpickle_Npos1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_559__pyx_unpickle_Npos1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos1cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos1cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Npos1cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos1cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_558__pyx_unpickle_Npos1cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_558__pyx_unpickle_Npos1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos1cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos1cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Npos1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos1cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos1cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Npos1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npos1cos__set_state(((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Npos1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npos1cos__set_state(struct __pyx_obj_8pysndlib_10generators_Npos1cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos1cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Npos1cos__set_state(<Npos1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos1cos__set_state(Npos1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos1cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Npos3cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_561__pyx_unpickle_Npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_561__pyx_unpickle_Npos3cos = {"__pyx_unpickle_Npos3cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_561__pyx_unpickle_Npos3cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_561__pyx_unpickle_Npos3cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos3cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos3cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos3cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Npos3cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Npos3cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_560__pyx_unpickle_Npos3cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_560__pyx_unpickle_Npos3cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos3cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__27, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos3cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Npos3cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6cb8864, 0xbe0f567, 0xe87fabe):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos3cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos3cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos3cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Npos3cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Npos3cos__set_state(((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6cb8864, 0xbe0f567, 0xe87fabe) = (angle, frequency, n))" % __pyx_checksum
 *     __pyx_result = Npos3cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Npos3cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos3cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Npos3cos__set_state(struct __pyx_obj_8pysndlib_10generators_Npos3cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Npos3cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Npos3cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_563__pyx_unpickle_Rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_563__pyx_unpickle_Rcos = {"__pyx_unpickle_Rcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_563__pyx_unpickle_Rcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_563__pyx_unpickle_Rcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_562__pyx_unpickle_Rcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_562__pyx_unpickle_Rcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf28f7a9, 0x99274df, 0x0d5cc07):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__33, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf28f7a9, 0x99274df, 0x0d5cc07):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 *     __pyx_result = Rcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xf28f7a9, 0x99274df, 0x0d5cc07):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf28f7a9, 0x99274df, 0x0d5cc07):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 *     __pyx_result = Rcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 *     __pyx_result = Rcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Rcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf28f7a9, 0x99274df, 0x0d5cc07) = (norm, osc, r, r2, rr, rrm1, rrp1))" % __pyx_checksum
 *     __pyx_result = Rcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rrm1 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rrp1 = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 7);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rcos__set_state(<Rcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rcos__set_state(Rcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.norm = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.rr = __pyx_state[4]; __pyx_result.rrm1 = __pyx_state[5]; __pyx_result.rrp1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_565__pyx_unpickle_Rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_565__pyx_unpickle_Rssb = {"__pyx_unpickle_Rssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_565__pyx_unpickle_Rssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_565__pyx_unpickle_Rssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_564__pyx_unpickle_Rssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_564__pyx_unpickle_Rssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__34, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Rssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rxysin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_567__pyx_unpickle_Rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_567__pyx_unpickle_Rxysin = {"__pyx_unpickle_Rxysin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_567__pyx_unpickle_Rxysin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_567__pyx_unpickle_Rxysin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxysin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxysin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxysin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rxysin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxysin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_566__pyx_unpickle_Rxysin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_566__pyx_unpickle_Rxysin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxysin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf625d4b, 0x740868e, 0x8075170):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__35, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf625d4b, 0x740868e, 0x8075170):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxysin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xf625d4b, 0x740868e, 0x8075170):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xf625d4b, 0x740868e, 0x8075170):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxysin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxysin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rxysin__set_state(((struct __pyx_obj_8pysndlib_10generators_Rxysin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xf625d4b, 0x740868e, 0x8075170) = (angle, frequency, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxysin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rxysin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxysin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rxysin__set_state(struct __pyx_obj_8pysndlib_10generators_Rxysin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxysin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rxysin__set_state(<Rxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxysin__set_state(Rxysin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.r2 = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxysin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_569__pyx_unpickle_Rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_569__pyx_unpickle_Rxycos = {"__pyx_unpickle_Rxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_569__pyx_unpickle_Rxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_569__pyx_unpickle_Rxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxycos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxycos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rxycos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rxycos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_568__pyx_unpickle_Rxycos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_568__pyx_unpickle_Rxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxycos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe37ae4e, 0x818921f, 0x2296730):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__36, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe37ae4e, 0x818921f, 0x2296730):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxycos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe37ae4e, 0x818921f, 0x2296730):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe37ae4e, 0x818921f, 0x2296730):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxycos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxycos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rxycos__set_state(((struct __pyx_obj_8pysndlib_10generators_Rxycos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe37ae4e, 0x818921f, 0x2296730) = (angle, frequency, norm, r, r2, ratio, rr))" % __pyx_checksum
 *     __pyx_result = Rxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rxycos__set_state(struct __pyx_obj_8pysndlib_10generators_Rxycos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rxycos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 7);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rxycos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_SafeRxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_571__pyx_unpickle_SafeRxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_571__pyx_unpickle_SafeRxycos = {"__pyx_unpickle_SafeRxycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_571__pyx_unpickle_SafeRxycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_571__pyx_unpickle_SafeRxycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_SafeRxycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SafeRxycos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SafeRxycos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_SafeRxycos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SafeRxycos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SafeRxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_570__pyx_unpickle_SafeRxycos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_570__pyx_unpickle_SafeRxycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_SafeRxycos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x83bc4d6, 0xa34cb20, 0x5f4b812):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__37, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x83bc4d6, 0xa34cb20, 0x5f4b812):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x83bc4d6, 0xa34cb20, 0x5f4b812):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x83bc4d6, 0xa34cb20, 0x5f4b812):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_SafeRxycos__set_state(((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x83bc4d6, 0xa34cb20, 0x5f4b812) = (angle, cutoff, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = SafeRxycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_SafeRxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SafeRxycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_SafeRxycos__set_state(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_SafeRxycos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->cutoff = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_SafeRxycos__set_state(<SafeRxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_SafeRxycos__set_state(SafeRxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cutoff = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SafeRxycos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Ercos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_573__pyx_unpickle_Ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_573__pyx_unpickle_Ercos = {"__pyx_unpickle_Ercos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_573__pyx_unpickle_Ercos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_573__pyx_unpickle_Ercos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ercos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ercos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ercos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Ercos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Ercos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_572__pyx_unpickle_Ercos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_572__pyx_unpickle_Ercos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ercos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe27f1b5, 0xe038434, 0x1586ee6):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__38, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe27f1b5, 0xe038434, 0x1586ee6):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 *     __pyx_result = Ercos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe27f1b5, 0xe038434, 0x1586ee6):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Ercos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe27f1b5, 0xe038434, 0x1586ee6):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 *     __pyx_result = Ercos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Ercos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 *     __pyx_result = Ercos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Ercos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Ercos__set_state(((struct __pyx_obj_8pysndlib_10generators_Ercos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe27f1b5, 0xe038434, 0x1586ee6) = (angle, cosh_t, frequency, offset, osc, r, scaler))" % __pyx_checksum
 *     __pyx_result = Ercos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ercos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ercos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Ercos__set_state(struct __pyx_obj_8pysndlib_10generators_Ercos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Ercos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->cosh_t = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->offset = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->scaler = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 7);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Ercos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Erssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_575__pyx_unpickle_Erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_575__pyx_unpickle_Erssb = {"__pyx_unpickle_Erssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_575__pyx_unpickle_Erssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_575__pyx_unpickle_Erssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Erssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Erssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Erssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Erssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Erssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_574__pyx_unpickle_Erssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_574__pyx_unpickle_Erssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Erssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__34, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Erssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Erssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Erssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Erssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Erssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Erssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Erssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Erssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Erssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Erssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Erssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Erssb__set_state(struct __pyx_obj_8pysndlib_10generators_Erssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Erssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Erssb__set_state(<Erssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Erssb__set_state(Erssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Erssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_R2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_577__pyx_unpickle_R2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_577__pyx_unpickle_R2cos = {"__pyx_unpickle_R2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_577__pyx_unpickle_R2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_577__pyx_unpickle_R2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_R2cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_576__pyx_unpickle_R2cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_576__pyx_unpickle_R2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__39, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = R2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = R2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2cos__set_state(((struct __pyx_obj_8pysndlib_10generators_R2cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2cos__set_state(struct __pyx_obj_8pysndlib_10generators_R2cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_R2ssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_579__pyx_unpickle_R2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_579__pyx_unpickle_R2ssb = {"__pyx_unpickle_R2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_579__pyx_unpickle_R2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_579__pyx_unpickle_R2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2ssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2ssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_R2ssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2ssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_578__pyx_unpickle_R2ssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_578__pyx_unpickle_R2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2ssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x922d628, 0xfe93a74, 0xcfcad69):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__40, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x922d628, 0xfe93a74, 0xcfcad69):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 *     __pyx_result = R2ssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x922d628, 0xfe93a74, 0xcfcad69):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = R2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x922d628, 0xfe93a74, 0xcfcad69):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 *     __pyx_result = R2ssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2ssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 *     __pyx_result = R2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = R2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2ssb__set_state(((struct __pyx_obj_8pysndlib_10generators_R2ssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x922d628, 0xfe93a74, 0xcfcad69) = (angle, frequency, osc, r, ratio))" % __pyx_checksum
 *     __pyx_result = R2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2ssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2ssb__set_state(struct __pyx_obj_8pysndlib_10generators_R2ssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2ssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2ssb__set_state(<R2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2ssb__set_state(R2ssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2ssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Eoddcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_581__pyx_unpickle_Eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_581__pyx_unpickle_Eoddcos = {"__pyx_unpickle_Eoddcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_581__pyx_unpickle_Eoddcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_581__pyx_unpickle_Eoddcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Eoddcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Eoddcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Eoddcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Eoddcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Eoddcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_580__pyx_unpickle_Eoddcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_580__pyx_unpickle_Eoddcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Eoddcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__41, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Eoddcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Eoddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Eoddcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Eoddcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Eoddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Eoddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Eoddcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Eoddcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Eoddcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Eoddcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Eoddcos__set_state(struct __pyx_obj_8pysndlib_10generators_Eoddcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Eoddcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Eoddcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rkcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_583__pyx_unpickle_Rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_583__pyx_unpickle_Rkcos = {"__pyx_unpickle_Rkcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_583__pyx_unpickle_Rkcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_583__pyx_unpickle_Rkcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rkcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_582__pyx_unpickle_Rkcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_582__pyx_unpickle_Rkcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__42, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rkcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rkcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Rkcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rkcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkcos__set_state(<Rkcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkcos__set_state(Rkcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_585__pyx_unpickle_Rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_585__pyx_unpickle_Rksin = {"__pyx_unpickle_Rksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_585__pyx_unpickle_Rksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_585__pyx_unpickle_Rksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rksin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rksin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rksin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rksin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_584__pyx_unpickle_Rksin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_584__pyx_unpickle_Rksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rksin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__39, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Rksin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rksin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Rksin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rksin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Rksin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rksin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rksin__set_state(((struct __pyx_obj_8pysndlib_10generators_Rksin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Rksin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rksin__set_state(struct __pyx_obj_8pysndlib_10generators_Rksin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rksin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rksin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rkssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_587__pyx_unpickle_Rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_587__pyx_unpickle_Rkssb = {"__pyx_unpickle_Rkssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_587__pyx_unpickle_Rkssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_587__pyx_unpickle_Rkssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rkssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_586__pyx_unpickle_Rkssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_586__pyx_unpickle_Rkssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__42, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3aacba9, 0xf3b3961, 0xfe0886a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Rkssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3aacba9, 0xf3b3961, 0xfe0886a) = (frequency, norm, osc, r))" % __pyx_checksum
 *     __pyx_result = Rkssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkssb__set_state(<Rkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkssb__set_state(Rkssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.norm = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rkfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_589__pyx_unpickle_Rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_589__pyx_unpickle_Rkfcos = {"__pyx_unpickle_Rkfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_589__pyx_unpickle_Rkfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_589__pyx_unpickle_Rkfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rkfcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_588__pyx_unpickle_Rkfcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_588__pyx_unpickle_Rkfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x67c3143, 0x2eac842, 0x8f6e8e2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__43, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x67c3143, 0x2eac842, 0x8f6e8e2):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 *     __pyx_result = Rkfcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x67c3143, 0x2eac842, 0x8f6e8e2):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rkfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x67c3143, 0x2eac842, 0x8f6e8e2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 *     __pyx_result = Rkfcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 *     __pyx_result = Rkfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rkfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x67c3143, 0x2eac842, 0x8f6e8e2) = (angle, frequency, norm, r))" % __pyx_checksum
 *     __pyx_result = Rkfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfcos__set_state(struct __pyx_obj_8pysndlib_10generators_Rkfcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rkfssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_591__pyx_unpickle_Rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_591__pyx_unpickle_Rkfssb = {"__pyx_unpickle_Rkfssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_591__pyx_unpickle_Rkfssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_591__pyx_unpickle_Rkfssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rkfssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkfssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_590__pyx_unpickle_Rkfssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_590__pyx_unpickle_Rkfssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__34, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rkfssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rkfssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8089149, 0x93d4a9f, 0x58ea4f2):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rkfssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rkfssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rkfssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8089149, 0x93d4a9f, 0x58ea4f2) = (angle, frequency, r, ratio))" % __pyx_checksum
 *     __pyx_result = Rkfssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkfssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkfssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkfssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkfssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkfssb__set_state(<Rkfssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfssb__set_state(Rkfssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkfssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_R2kfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_593__pyx_unpickle_R2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_593__pyx_unpickle_R2kfcos = {"__pyx_unpickle_R2kfcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_593__pyx_unpickle_R2kfcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_593__pyx_unpickle_R2kfcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2kfcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2kfcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2kfcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_R2kfcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2kfcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_592__pyx_unpickle_R2kfcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_592__pyx_unpickle_R2kfcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2kfcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8d67433, 0xe6b2d5b, 0x59e2c2d):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__44, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8d67433, 0xe6b2d5b, 0x59e2c2d):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 *     __pyx_result = R2kfcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8d67433, 0xe6b2d5b, 0x59e2c2d):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = R2kfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8d67433, 0xe6b2d5b, 0x59e2c2d):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 *     __pyx_result = R2kfcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2kfcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 *     __pyx_result = R2kfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = R2kfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2kfcos__set_state(((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8d67433, 0xe6b2d5b, 0x59e2c2d) = (frequency, k, norm, osc, r, r2, rr1))" % __pyx_checksum
 *     __pyx_result = R2kfcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2kfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2kfcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2kfcos__set_state(struct __pyx_obj_8pysndlib_10generators_R2kfcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2kfcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->k = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r2 = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr1 = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 7);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2kfcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_K2sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_595__pyx_unpickle_K2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_595__pyx_unpickle_K2sin = {"__pyx_unpickle_K2sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_595__pyx_unpickle_K2sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_595__pyx_unpickle_K2sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2sin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2sin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_K2sin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2sin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_594__pyx_unpickle_K2sin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_594__pyx_unpickle_K2sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2sin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__45, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2sin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = K2sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2sin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2sin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = K2sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2sin__set_state(((struct __pyx_obj_8pysndlib_10generators_K2sin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_K2sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2sin__set_state(struct __pyx_obj_8pysndlib_10generators_K2sin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2sin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_K2sin__set_state(<K2sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2sin__set_state(K2sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2sin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_K2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_597__pyx_unpickle_K2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_597__pyx_unpickle_K2cos = {"__pyx_unpickle_K2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_597__pyx_unpickle_K2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_597__pyx_unpickle_K2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_K2cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_596__pyx_unpickle_K2cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_596__pyx_unpickle_K2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__45, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = K2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2248a15, 0x3bf63e2, 0x79a7cd9):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = K2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2cos__set_state(((struct __pyx_obj_8pysndlib_10generators_K2cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2248a15, 0x3bf63e2, 0x79a7cd9) = (angle, frequency))" % __pyx_checksum
 *     __pyx_result = K2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_K2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2cos__set_state(struct __pyx_obj_8pysndlib_10generators_K2cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_K2ssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_599__pyx_unpickle_K2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_599__pyx_unpickle_K2ssb = {"__pyx_unpickle_K2ssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_599__pyx_unpickle_K2ssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_599__pyx_unpickle_K2ssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2ssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2ssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2ssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_K2ssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K2ssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_598__pyx_unpickle_K2ssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_598__pyx_unpickle_K2ssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2ssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xac5d142, 0x09b1b49, 0x25570b0):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__46, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xac5d142, 0x09b1b49, 0x25570b0):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 *     __pyx_result = K2ssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xac5d142, 0x09b1b49, 0x25570b0):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = K2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xac5d142, 0x09b1b49, 0x25570b0):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 *     __pyx_result = K2ssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_K2ssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 *     __pyx_result = K2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = K2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K2ssb__set_state(((struct __pyx_obj_8pysndlib_10generators_K2ssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xac5d142, 0x09b1b49, 0x25570b0) = (angle, frequency, ratio))" % __pyx_checksum
 *     __pyx_result = K2ssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_K2ssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2ssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K2ssb__set_state(struct __pyx_obj_8pysndlib_10generators_K2ssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K2ssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_K2ssb__set_state(<K2ssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2ssb__set_state(K2ssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.ratio = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K2ssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Dblsum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_601__pyx_unpickle_Dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_601__pyx_unpickle_Dblsum = {"__pyx_unpickle_Dblsum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_601__pyx_unpickle_Dblsum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_601__pyx_unpickle_Dblsum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Dblsum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Dblsum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Dblsum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Dblsum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Dblsum", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_600__pyx_unpickle_Dblsum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_600__pyx_unpickle_Dblsum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Dblsum", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__39, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Dblsum.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Dblsum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Dblsum.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Dblsum), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Dblsum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Dblsum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Dblsum__set_state(((struct __pyx_obj_8pysndlib_10generators_Dblsum *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Dblsum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Dblsum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Dblsum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Dblsum__set_state(struct __pyx_obj_8pysndlib_10generators_Dblsum *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Dblsum__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Dblsum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Rkoddssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_603__pyx_unpickle_Rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_603__pyx_unpickle_Rkoddssb = {"__pyx_unpickle_Rkoddssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_603__pyx_unpickle_Rkoddssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_603__pyx_unpickle_Rkoddssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkoddssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkoddssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkoddssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Rkoddssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Rkoddssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_602__pyx_unpickle_Rkoddssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_602__pyx_unpickle_Rkoddssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkoddssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x64e2c41, 0x8c0b552, 0x21d6c55):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__47, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x64e2c41, 0x8c0b552, 0x21d6c55):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x64e2c41, 0x8c0b552, 0x21d6c55):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x64e2c41, 0x8c0b552, 0x21d6c55):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkoddssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Rkoddssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x64e2c41, 0x8c0b552, 0x21d6c55) = (angle, frequency, norm, r, ratio, rr1))" % __pyx_checksum
 *     __pyx_result = Rkoddssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkoddssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkoddssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Rkoddssb__set_state(struct __pyx_obj_8pysndlib_10generators_Rkoddssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Rkoddssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->rr1 = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkoddssb__set_state(<Rkoddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkoddssb__set_state(Rkoddssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]; __pyx_result.rr1 = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Rkoddssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Krksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_605__pyx_unpickle_Krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_605__pyx_unpickle_Krksin = {"__pyx_unpickle_Krksin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_605__pyx_unpickle_Krksin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_605__pyx_unpickle_Krksin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Krksin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Krksin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Krksin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Krksin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Krksin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_604__pyx_unpickle_Krksin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_604__pyx_unpickle_Krksin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Krksin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__39, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Krksin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Krksin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Krksin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Krksin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Krksin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Krksin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Krksin__set_state(((struct __pyx_obj_8pysndlib_10generators_Krksin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Krksin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Krksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Krksin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Krksin__set_state(struct __pyx_obj_8pysndlib_10generators_Krksin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Krksin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Krksin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Absin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_607__pyx_unpickle_Absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_607__pyx_unpickle_Absin = {"__pyx_unpickle_Absin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_607__pyx_unpickle_Absin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_607__pyx_unpickle_Absin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Absin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Absin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Absin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Absin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Absin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_606__pyx_unpickle_Absin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_606__pyx_unpickle_Absin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Absin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4e7cbdb, 0x7928c35, 0x29706bd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__48, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4e7cbdb, 0x7928c35, 0x29706bd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 *     __pyx_result = Absin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x4e7cbdb, 0x7928c35, 0x29706bd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Absin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4e7cbdb, 0x7928c35, 0x29706bd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 *     __pyx_result = Absin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Absin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 *     __pyx_result = Absin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Absin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Absin__set_state(((struct __pyx_obj_8pysndlib_10generators_Absin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4e7cbdb, 0x7928c35, 0x29706bd) = (frequency, osc))" % __pyx_checksum
 *     __pyx_result = Absin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Absin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Absin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Absin__set_state(struct __pyx_obj_8pysndlib_10generators_Absin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Absin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Absin__set_state(<Absin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Absin__set_state(Absin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Absin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Abcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_609__pyx_unpickle_Abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_609__pyx_unpickle_Abcos = {"__pyx_unpickle_Abcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_609__pyx_unpickle_Abcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_609__pyx_unpickle_Abcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Abcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Abcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Abcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Abcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Abcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_608__pyx_unpickle_Abcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_608__pyx_unpickle_Abcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Abcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2f2ef53, 0x2a42be2, 0xc7f8bfc):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__49, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2f2ef53, 0x2a42be2, 0xc7f8bfc):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 *     __pyx_result = Abcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x2f2ef53, 0x2a42be2, 0xc7f8bfc):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Abcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x2f2ef53, 0x2a42be2, 0xc7f8bfc):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 *     __pyx_result = Abcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Abcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 *     __pyx_result = Abcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Abcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Abcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Abcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x2f2ef53, 0x2a42be2, 0xc7f8bfc) = (a, ab, angle, b, frequency, norm))" % __pyx_checksum
 *     __pyx_result = Abcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Abcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Abcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Abcos__set_state(struct __pyx_obj_8pysndlib_10generators_Abcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Abcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ab = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->b = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Abcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_R2k2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_611__pyx_unpickle_R2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_611__pyx_unpickle_R2k2cos = {"__pyx_unpickle_R2k2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_611__pyx_unpickle_R2k2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_611__pyx_unpickle_R2k2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2k2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2k2cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2k2cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_R2k2cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_R2k2cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_610__pyx_unpickle_R2k2cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_610__pyx_unpickle_R2k2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2k2cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__39, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2k2cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = R2k2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x9e5ff46, 0x7283d9d, 0x64c0a04):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2k2cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_R2k2cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2k2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = R2k2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_R2k2cos__set_state(((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x9e5ff46, 0x7283d9d, 0x64c0a04) = (angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = R2k2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2k2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2k2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_R2k2cos__set_state(struct __pyx_obj_8pysndlib_10generators_R2k2cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_R2k2cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2k2cos__set_state(<R2k2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2k2cos__set_state(R2k2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_R2k2cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Blsaw(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_613__pyx_unpickle_Blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_613__pyx_unpickle_Blsaw = {"__pyx_unpickle_Blsaw", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_613__pyx_unpickle_Blsaw, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_613__pyx_unpickle_Blsaw(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blsaw (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blsaw", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blsaw", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Blsaw") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blsaw", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_612__pyx_unpickle_Blsaw(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_612__pyx_unpickle_Blsaw(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blsaw", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4fda3b0, 0xdd29a7e, 0xa292ff1):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__50, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4fda3b0, 0xdd29a7e, 0xa292ff1):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Blsaw.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x4fda3b0, 0xdd29a7e, 0xa292ff1):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Blsaw.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x4fda3b0, 0xdd29a7e, 0xa292ff1):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Blsaw.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Blsaw), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Blsaw.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Blsaw.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Blsaw__set_state(((struct __pyx_obj_8pysndlib_10generators_Blsaw *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x4fda3b0, 0xdd29a7e, 0xa292ff1) = (angle, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Blsaw.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Blsaw(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blsaw", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Blsaw__set_state(struct __pyx_obj_8pysndlib_10generators_Blsaw *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blsaw__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blsaw__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Asyfm(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_615__pyx_unpickle_Asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_615__pyx_unpickle_Asyfm = {"__pyx_unpickle_Asyfm", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_615__pyx_unpickle_Asyfm, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_615__pyx_unpickle_Asyfm(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Asyfm (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Asyfm", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Asyfm", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Asyfm") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Asyfm", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_614__pyx_unpickle_Asyfm(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_614__pyx_unpickle_Asyfm(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Asyfm", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0420b48, 0x4deeb06, 0x8c897a6):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__51, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0420b48, 0x4deeb06, 0x8c897a6):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 *     __pyx_result = Asyfm.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x0420b48, 0x4deeb06, 0x8c897a6):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Asyfm.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x0420b48, 0x4deeb06, 0x8c897a6):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 *     __pyx_result = Asyfm.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 *     __pyx_result = Asyfm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Asyfm.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Asyfm__set_state(((struct __pyx_obj_8pysndlib_10generators_Asyfm *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x0420b48, 0x4deeb06, 0x8c897a6) = (angle, frequency, index, r, ratio))" % __pyx_checksum
 *     __pyx_result = Asyfm.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Asyfm(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Asyfm", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Asyfm__set_state(struct __pyx_obj_8pysndlib_10generators_Asyfm *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Asyfm__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->index = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Asyfm__set_state(<Asyfm> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Asyfm__set_state(Asyfm __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Asyfm__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Bess(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_617__pyx_unpickle_Bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_617__pyx_unpickle_Bess = {"__pyx_unpickle_Bess", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_617__pyx_unpickle_Bess, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_617__pyx_unpickle_Bess(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bess (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bess", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bess", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Bess") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Bess", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_616__pyx_unpickle_Bess(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_616__pyx_unpickle_Bess(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bess", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__28, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Bess.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Bess.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3deb623, 0x093f242, 0xbaf72ff):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Bess.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Bess.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Bess.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Bess__set_state(((struct __pyx_obj_8pysndlib_10generators_Bess *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3deb623, 0x093f242, 0xbaf72ff) = (angle, frequency, n, norm))" % __pyx_checksum
 *     __pyx_result = Bess.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Bess(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Bess", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Bess__set_state(struct __pyx_obj_8pysndlib_10generators_Bess *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Bess__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Bess__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Jjcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_619__pyx_unpickle_Jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_619__pyx_unpickle_Jjcos = {"__pyx_unpickle_Jjcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_619__pyx_unpickle_Jjcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_619__pyx_unpickle_Jjcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jjcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jjcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jjcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Jjcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jjcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_618__pyx_unpickle_Jjcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_618__pyx_unpickle_Jjcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jjcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__52, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jjcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Jjcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jjcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jjcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jjcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Jjcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jjcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Jjcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jjcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jjcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jjcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jjcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jjcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jjcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->k = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jjcos__set_state(<Jjcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jjcos__set_state(Jjcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jjcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_J0evencos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_621__pyx_unpickle_J0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_621__pyx_unpickle_J0evencos = {"__pyx_unpickle_J0evencos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_621__pyx_unpickle_J0evencos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_621__pyx_unpickle_J0evencos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0evencos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0evencos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0evencos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_J0evencos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0evencos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_620__pyx_unpickle_J0evencos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_620__pyx_unpickle_J0evencos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0evencos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__53, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0evencos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = J0evencos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0evencos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_J0evencos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0evencos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = J0evencos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J0evencos__set_state(((struct __pyx_obj_8pysndlib_10generators_J0evencos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0evencos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_J0evencos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0evencos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J0evencos__set_state(struct __pyx_obj_8pysndlib_10generators_J0evencos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0evencos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->index = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0evencos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_J2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_623__pyx_unpickle_J2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_623__pyx_unpickle_J2cos = {"__pyx_unpickle_J2cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_623__pyx_unpickle_J2cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_623__pyx_unpickle_J2cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_J2cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J2cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J2cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_J2cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J2cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_622__pyx_unpickle_J2cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_622__pyx_unpickle_J2cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J2cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb5f0547, 0x1a922be, 0x1c6c2e3):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__54, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb5f0547, 0x1a922be, 0x1c6c2e3):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 *     __pyx_result = J2cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xb5f0547, 0x1a922be, 0x1c6c2e3):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = J2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb5f0547, 0x1a922be, 0x1c6c2e3):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 *     __pyx_result = J2cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_J2cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 *     __pyx_result = J2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = J2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J2cos__set_state(((struct __pyx_obj_8pysndlib_10generators_J2cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb5f0547, 0x1a922be, 0x1c6c2e3) = (angle, frequency, n, norm, r))" % __pyx_checksum
 *     __pyx_result = J2cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_J2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J2cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J2cos__set_state(struct __pyx_obj_8pysndlib_10generators_J2cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J2cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 5);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_J2cos__set_state(<J2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J2cos__set_state(J2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J2cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Jpcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_625__pyx_unpickle_Jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_625__pyx_unpickle_Jpcos = {"__pyx_unpickle_Jpcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_625__pyx_unpickle_Jpcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_625__pyx_unpickle_Jpcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jpcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jpcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jpcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Jpcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jpcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_624__pyx_unpickle_Jpcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_624__pyx_unpickle_Jpcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jpcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__52, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jpcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Jpcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb0042b8, 0xe75eb44, 0x1068587):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jpcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jpcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jpcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Jpcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jpcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Jpcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb0042b8, 0xe75eb44, 0x1068587) = (a, angle, frequency, k, r))" % __pyx_checksum
 *     __pyx_result = Jpcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jpcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jpcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jpcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jpcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jpcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->k = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jpcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Jncos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_627__pyx_unpickle_Jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_627__pyx_unpickle_Jncos = {"__pyx_unpickle_Jncos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_627__pyx_unpickle_Jncos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_627__pyx_unpickle_Jncos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jncos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jncos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jncos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Jncos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jncos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_626__pyx_unpickle_Jncos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_626__pyx_unpickle_Jncos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jncos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8867b32, 0x35ee3a5, 0x8fd007c):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__55, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8867b32, 0x35ee3a5, 0x8fd007c):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 *     __pyx_result = Jncos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8867b32, 0x35ee3a5, 0x8fd007c):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Jncos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8867b32, 0x35ee3a5, 0x8fd007c):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 *     __pyx_result = Jncos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jncos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 *     __pyx_result = Jncos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Jncos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jncos__set_state(((struct __pyx_obj_8pysndlib_10generators_Jncos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8867b32, 0x35ee3a5, 0x8fd007c) = (a, angle, frequency, n, r, ra))" % __pyx_checksum
 *     __pyx_result = Jncos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jncos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jncos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jncos__set_state(struct __pyx_obj_8pysndlib_10generators_Jncos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jncos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ra = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 6);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jncos__set_state(<Jncos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jncos__set_state(Jncos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.ra = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jncos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_J0j1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_629__pyx_unpickle_J0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_629__pyx_unpickle_J0j1cos = {"__pyx_unpickle_J0j1cos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_629__pyx_unpickle_J0j1cos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_629__pyx_unpickle_J0j1cos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0j1cos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0j1cos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0j1cos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_J0j1cos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_J0j1cos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_628__pyx_unpickle_J0j1cos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_628__pyx_unpickle_J0j1cos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0j1cos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__53, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0j1cos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = J0j1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xde3685f, 0xe00d734, 0x6312cbf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0j1cos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_J0j1cos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0j1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = J0j1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_J0j1cos__set_state(((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xde3685f, 0xe00d734, 0x6312cbf) = (angle, frequency, index))" % __pyx_checksum
 *     __pyx_result = J0j1cos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_J0j1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0j1cos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_J0j1cos__set_state(struct __pyx_obj_8pysndlib_10generators_J0j1cos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_J0j1cos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->index = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_J0j1cos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Jycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_631__pyx_unpickle_Jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_631__pyx_unpickle_Jycos = {"__pyx_unpickle_Jycos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_631__pyx_unpickle_Jycos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_631__pyx_unpickle_Jycos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jycos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jycos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jycos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Jycos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jycos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_630__pyx_unpickle_Jycos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_630__pyx_unpickle_Jycos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jycos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x500e025, 0xd8c637b, 0xe15a937):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__56, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x500e025, 0xd8c637b, 0xe15a937):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Jycos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x500e025, 0xd8c637b, 0xe15a937):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Jycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x500e025, 0xd8c637b, 0xe15a937):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Jycos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jycos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Jycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Jycos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jycos__set_state(((struct __pyx_obj_8pysndlib_10generators_Jycos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x500e025, 0xd8c637b, 0xe15a937) = (a, angle, frequency, r))" % __pyx_checksum
 *     __pyx_result = Jycos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jycos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jycos__set_state(struct __pyx_obj_8pysndlib_10generators_Jycos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jycos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jycos__set_state(<Jycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jycos__set_state(Jycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jycos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Jcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_633__pyx_unpickle_Jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_633__pyx_unpickle_Jcos = {"__pyx_unpickle_Jcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_633__pyx_unpickle_Jcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_633__pyx_unpickle_Jcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Jcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Jcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_632__pyx_unpickle_Jcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_632__pyx_unpickle_Jcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb37ed78, 0xe916e5a, 0x2462c28):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__57, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb37ed78, 0xe916e5a, 0x2462c28):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Jcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xb37ed78, 0xe916e5a, 0x2462c28):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Jcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb37ed78, 0xe916e5a, 0x2462c28):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Jcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Jcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Jcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Jcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Jcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Jcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb37ed78, 0xe916e5a, 0x2462c28) = (a, frequency, n, r))" % __pyx_checksum
 *     __pyx_result = Jcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Jcos__set_state(struct __pyx_obj_8pysndlib_10generators_Jcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Jcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->a = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Jcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Blackman(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_635__pyx_unpickle_Blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_635__pyx_unpickle_Blackman = {"__pyx_unpickle_Blackman", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_635__pyx_unpickle_Blackman, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_635__pyx_unpickle_Blackman(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blackman (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blackman", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blackman", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Blackman") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Blackman", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_634__pyx_unpickle_Blackman(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_634__pyx_unpickle_Blackman(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blackman", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x604a374, 0x1f9d44e, 0xfba3b75):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__58, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x604a374, 0x1f9d44e, 0xfba3b75):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 *     __pyx_result = Blackman.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x604a374, 0x1f9d44e, 0xfba3b75):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Blackman.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x604a374, 0x1f9d44e, 0xfba3b75):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 *     __pyx_result = Blackman.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 *     __pyx_result = Blackman.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Blackman.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Blackman__set_state(((struct __pyx_obj_8pysndlib_10generators_Blackman *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x604a374, 0x1f9d44e, 0xfba3b75) = (frequency, n, osc))" % __pyx_checksum
 *     __pyx_result = Blackman.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Blackman(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blackman", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Blackman__set_state(struct __pyx_obj_8pysndlib_10generators_Blackman *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Blackman__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 3);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Blackman__set_state(<Blackman> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Blackman__set_state(Blackman __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.n = __pyx_state[1]; __pyx_result.osc = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Blackman__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Fmssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_637__pyx_unpickle_Fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_637__pyx_unpickle_Fmssb = {"__pyx_unpickle_Fmssb", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_637__pyx_unpickle_Fmssb, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_637__pyx_unpickle_Fmssb(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Fmssb (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Fmssb", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Fmssb", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Fmssb") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Fmssb", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_636__pyx_unpickle_Fmssb(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_636__pyx_unpickle_Fmssb(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Fmssb", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x7621c8d, 0xa5174f0, 0x0e2454a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__59, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x7621c8d, 0xa5174f0, 0x0e2454a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 *     __pyx_result = Fmssb.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x7621c8d, 0xa5174f0, 0x0e2454a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Fmssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x7621c8d, 0xa5174f0, 0x0e2454a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 *     __pyx_result = Fmssb.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Fmssb), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 *     __pyx_result = Fmssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Fmssb.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Fmssb__set_state(((struct __pyx_obj_8pysndlib_10generators_Fmssb *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x7621c8d, 0xa5174f0, 0x0e2454a) = (angle, frequency, idx, ratio))" % __pyx_checksum
 *     __pyx_result = Fmssb.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Fmssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Fmssb", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Fmssb__set_state(struct __pyx_obj_8pysndlib_10generators_Fmssb *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Fmssb__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->idx = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 4);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Fmssb__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_K3sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_639__pyx_unpickle_K3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_639__pyx_unpickle_K3sin = {"__pyx_unpickle_K3sin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_639__pyx_unpickle_K3sin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_639__pyx_unpickle_K3sin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_K3sin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K3sin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K3sin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_K3sin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_K3sin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_638__pyx_unpickle_K3sin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_638__pyx_unpickle_K3sin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K3sin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ee932e, 0xa679ad5, 0x396cedb):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__60, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ee932e, 0xa679ad5, 0x396cedb):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 *     __pyx_result = K3sin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8ee932e, 0xa679ad5, 0x396cedb):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = K3sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ee932e, 0xa679ad5, 0x396cedb):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 *     __pyx_result = K3sin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 *     __pyx_result = K3sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = K3sin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_K3sin__set_state(((struct __pyx_obj_8pysndlib_10generators_K3sin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ee932e, 0xa679ad5, 0x396cedb) = (angle, coeffs, frequency))" % __pyx_checksum
 *     __pyx_result = K3sin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_K3sin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K3sin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_K3sin__set_state(struct __pyx_obj_8pysndlib_10generators_K3sin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_K3sin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->coeffs);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->coeffs);
  __pyx_v___pyx_result->coeffs = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_K3sin__set_state(<K3sin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K3sin__set_state(K3sin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.coeffs = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_K3sin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Izcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_641__pyx_unpickle_Izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_641__pyx_unpickle_Izcos = {"__pyx_unpickle_Izcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_641__pyx_unpickle_Izcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_641__pyx_unpickle_Izcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Izcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Izcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Izcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Izcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Izcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_640__pyx_unpickle_Izcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_640__pyx_unpickle_Izcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Izcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3713f78, 0x85d2fa5, 0x9dce753):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__61, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3713f78, 0x85d2fa5, 0x9dce753):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 *     __pyx_result = Izcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x3713f78, 0x85d2fa5, 0x9dce753):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Izcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x3713f78, 0x85d2fa5, 0x9dce753):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 *     __pyx_result = Izcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 *     __pyx_result = Izcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Izcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Izcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Izcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x3713f78, 0x85d2fa5, 0x9dce753) = (angle, dc, frequency, inorm, norm, r))" % __pyx_checksum
 *     __pyx_result = Izcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Izcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Izcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Izcos__set_state(struct __pyx_obj_8pysndlib_10generators_Izcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Izcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->dc = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->inorm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->norm = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Izcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableSquareWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_643__pyx_unpickle_AdjustableSquareWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_643__pyx_unpickle_AdjustableSquareWave = {"__pyx_unpickle_AdjustableSquareWave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_643__pyx_unpickle_AdjustableSquareWave, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_643__pyx_unpickle_AdjustableSquareWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSquareWave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSquareWave", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSquareWave", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_AdjustableSquareWave") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSquareWave", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSquareWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_642__pyx_unpickle_AdjustableSquareWave(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_642__pyx_unpickle_AdjustableSquareWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSquareWave", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6fa01d2, 0xa9559a2, 0xfae2074):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__62, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6fa01d2, 0xa9559a2, 0xfae2074):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x6fa01d2, 0xa9559a2, 0xfae2074):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x6fa01d2, 0xa9559a2, 0xfae2074):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSquareWave__set_state(((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x6fa01d2, 0xa9559a2, 0xfae2074) = (amplitude, duty_factor, frequency, p1, p2, sum))" % __pyx_checksum
 *     __pyx_result = AdjustableSquareWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableSquareWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSquareWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSquareWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSquareWave__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->duty_factor = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->p1);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->p1);
  __pyx_v___pyx_result->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->p2);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->p2);
  __pyx_v___pyx_result->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->sum = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 6);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableSquareWave__set_state(<AdjustableSquareWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSquareWave__set_state(AdjustableSquareWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.p1 = __pyx_state[3]; __pyx_result.p2 = __pyx_state[4]; __pyx_result.sum = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSquareWave__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableTriangleWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_645__pyx_unpickle_AdjustableTriangleWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_645__pyx_unpickle_AdjustableTriangleWave = {"__pyx_unpickle_AdjustableTriangleWave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_645__pyx_unpickle_AdjustableTriangleWave, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_645__pyx_unpickle_AdjustableTriangleWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableTriangleWave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableTriangleWave", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableTriangleWave", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_AdjustableTriangleWave") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableTriangleWave", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableTriangleWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_644__pyx_unpickle_AdjustableTriangleWave(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_644__pyx_unpickle_AdjustableTriangleWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableTriangleWave", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__63, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableTriangleWave__set_state(((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableTriangleWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableTriangleWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableTriangleWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableTriangleWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableTriangleWave__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->duty_factor = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mtop = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->scl = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->top = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->val = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 8);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableTriangleWave__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableSawtoothWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_647__pyx_unpickle_AdjustableSawtoothWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_647__pyx_unpickle_AdjustableSawtoothWave = {"__pyx_unpickle_AdjustableSawtoothWave", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_647__pyx_unpickle_AdjustableSawtoothWave, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_647__pyx_unpickle_AdjustableSawtoothWave(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSawtoothWave (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSawtoothWave", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSawtoothWave", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_AdjustableSawtoothWave") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableSawtoothWave", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSawtoothWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_646__pyx_unpickle_AdjustableSawtoothWave(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_646__pyx_unpickle_AdjustableSawtoothWave(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSawtoothWave", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__63, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSawtoothWave__set_state(((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableSawtoothWave.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableSawtoothWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSawtoothWave", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableSawtoothWave__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableSawtoothWave__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->duty_factor = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mtop = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->scl = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->top = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->val = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 8);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableSawtoothWave__set_state(<AdjustableSawtoothWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableSawtoothWave__set_state(AdjustableSawtoothWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableSawtoothWave__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableOscil(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_649__pyx_unpickle_AdjustableOscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_649__pyx_unpickle_AdjustableOscil = {"__pyx_unpickle_AdjustableOscil", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_649__pyx_unpickle_AdjustableOscil, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_649__pyx_unpickle_AdjustableOscil(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableOscil (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableOscil", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableOscil", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_AdjustableOscil") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_AdjustableOscil", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableOscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_648__pyx_unpickle_AdjustableOscil(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_648__pyx_unpickle_AdjustableOscil(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableOscil", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__63, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb255a5, 0x183caa6, 0xcb4ce4a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableOscil), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableOscil__set_state(((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb255a5, 0x183caa6, 0xcb4ce4a) = (amplitude, duty_factor, frequency, gen, mtop, scl, top, val))" % __pyx_checksum
 *     __pyx_result = AdjustableOscil.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableOscil(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableOscil", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_AdjustableOscil__set_state(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_AdjustableOscil__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->duty_factor = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->mtop = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->scl = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->top = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->val = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 8);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_AdjustableOscil__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_RoundInterp(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_651__pyx_unpickle_RoundInterp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_651__pyx_unpickle_RoundInterp = {"__pyx_unpickle_RoundInterp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_651__pyx_unpickle_RoundInterp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_651__pyx_unpickle_RoundInterp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoundInterp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoundInterp", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoundInterp", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_RoundInterp") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_RoundInterp", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_RoundInterp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_650__pyx_unpickle_RoundInterp(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_650__pyx_unpickle_RoundInterp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoundInterp", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x37568ab, 0x5d5062e, 0x35b70bf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__64, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x37568ab, 0x5d5062e, 0x35b70bf):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 *     __pyx_result = RoundInterp.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x37568ab, 0x5d5062e, 0x35b70bf):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = RoundInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x37568ab, 0x5d5062e, 0x35b70bf):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 *     __pyx_result = RoundInterp.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_RoundInterp), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 *     __pyx_result = RoundInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = RoundInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_RoundInterp__set_state(((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x37568ab, 0x5d5062e, 0x35b70bf) = (amplitude, flt, frequency, n, rnd))" % __pyx_checksum
 *     __pyx_result = RoundInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_RoundInterp(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_RoundInterp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_RoundInterp__set_state(struct __pyx_obj_8pysndlib_10generators_RoundInterp *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_RoundInterp__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->flt);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->flt);
  __pyx_v___pyx_result->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->rnd);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->rnd);
  __pyx_v___pyx_result->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 5);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_RoundInterp__set_state(<RoundInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_RoundInterp__set_state(RoundInterp __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.flt = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.rnd = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_RoundInterp__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Nchoosekcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_653__pyx_unpickle_Nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_653__pyx_unpickle_Nchoosekcos = {"__pyx_unpickle_Nchoosekcos", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_653__pyx_unpickle_Nchoosekcos, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_653__pyx_unpickle_Nchoosekcos(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nchoosekcos (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nchoosekcos", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nchoosekcos", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Nchoosekcos") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Nchoosekcos", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_652__pyx_unpickle_Nchoosekcos(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_652__pyx_unpickle_Nchoosekcos(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nchoosekcos", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__25, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x062214b, 0xc68682b, 0xf3759b4):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Nchoosekcos), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Nchoosekcos__set_state(((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x062214b, 0xc68682b, 0xf3759b4) = (angle, frequency, n, ratio))" % __pyx_checksum
 *     __pyx_result = Nchoosekcos.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nchoosekcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nchoosekcos", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Nchoosekcos__set_state(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Nchoosekcos__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->ratio = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 4);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[4])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[4])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Nchoosekcos__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_SincTrain(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_655__pyx_unpickle_SincTrain(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_655__pyx_unpickle_SincTrain = {"__pyx_unpickle_SincTrain", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_655__pyx_unpickle_SincTrain, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_655__pyx_unpickle_SincTrain(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_SincTrain (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SincTrain", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SincTrain", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_SincTrain") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_SincTrain", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SincTrain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_654__pyx_unpickle_SincTrain(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_654__pyx_unpickle_SincTrain(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_SincTrain", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ff2fdc, 0x68e7599, 0xaab0c20):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__65, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ff2fdc, 0x68e7599, 0xaab0c20):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 *     __pyx_result = SincTrain.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x8ff2fdc, 0x68e7599, 0xaab0c20):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = SincTrain.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x8ff2fdc, 0x68e7599, 0xaab0c20):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 *     __pyx_result = SincTrain.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_SincTrain), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 *     __pyx_result = SincTrain.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = SincTrain.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_SincTrain__set_state(((struct __pyx_obj_8pysndlib_10generators_SincTrain *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x8ff2fdc, 0x68e7599, 0xaab0c20) = (angle, frequency, n, original_frequency, original_n))" % __pyx_checksum
 *     __pyx_result = SincTrain.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_SincTrain(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SincTrain", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_SincTrain__set_state(struct __pyx_obj_8pysndlib_10generators_SincTrain *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_SincTrain__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->original_frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->original_n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 5);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_SincTrain__set_state(<SincTrain> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_SincTrain__set_state(SincTrain __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.original_frequency = __pyx_state[3]; __pyx_result.original_n = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_SincTrain__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_PinkNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_657__pyx_unpickle_PinkNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_657__pyx_unpickle_PinkNoise = {"__pyx_unpickle_PinkNoise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_657__pyx_unpickle_PinkNoise, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_657__pyx_unpickle_PinkNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_PinkNoise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PinkNoise", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PinkNoise", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_PinkNoise") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_PinkNoise", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_PinkNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_656__pyx_unpickle_PinkNoise(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_656__pyx_unpickle_PinkNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PinkNoise", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x12ed653, 0x9757ca0, 0x56999e1):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__66, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x12ed653, 0x9757ca0, 0x56999e1):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 *     __pyx_result = PinkNoise.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x12ed653, 0x9757ca0, 0x56999e1):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = PinkNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x12ed653, 0x9757ca0, 0x56999e1):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 *     __pyx_result = PinkNoise.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_PinkNoise), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 *     __pyx_result = PinkNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = PinkNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_PinkNoise__set_state(((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x12ed653, 0x9757ca0, 0x56999e1) = (data, n))" % __pyx_checksum
 *     __pyx_result = PinkNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PinkNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_PinkNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_PinkNoise__set_state(struct __pyx_obj_8pysndlib_10generators_PinkNoise *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_PinkNoise__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->data);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->data);
  __pyx_v___pyx_result->data = ((PyArrayObject *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_PinkNoise__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_BrownNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_659__pyx_unpickle_BrownNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_659__pyx_unpickle_BrownNoise = {"__pyx_unpickle_BrownNoise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_659__pyx_unpickle_BrownNoise, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_659__pyx_unpickle_BrownNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_BrownNoise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BrownNoise", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BrownNoise", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_BrownNoise") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_BrownNoise", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_BrownNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_658__pyx_unpickle_BrownNoise(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_658__pyx_unpickle_BrownNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BrownNoise", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x58db6d8, 0x1ae8cfb, 0xb81b215):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__67, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x58db6d8, 0x1ae8cfb, 0xb81b215):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 *     __pyx_result = BrownNoise.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x58db6d8, 0x1ae8cfb, 0xb81b215):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = BrownNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x58db6d8, 0x1ae8cfb, 0xb81b215):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 *     __pyx_result = BrownNoise.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_BrownNoise), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 *     __pyx_result = BrownNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = BrownNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_BrownNoise__set_state(((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x58db6d8, 0x1ae8cfb, 0xb81b215) = (amplitude, frequency, gr, prev, sum))" % __pyx_checksum
 *     __pyx_result = BrownNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_BrownNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_BrownNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_BrownNoise__set_state(struct __pyx_obj_8pysndlib_10generators_BrownNoise *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_BrownNoise__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gr);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gr);
  __pyx_v___pyx_result->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->prev = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->sum = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 5);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[5])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[5])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_BrownNoise__set_state(<BrownNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_BrownNoise__set_state(BrownNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.prev = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_BrownNoise__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_GreenNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_661__pyx_unpickle_GreenNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_661__pyx_unpickle_GreenNoise = {"__pyx_unpickle_GreenNoise", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_661__pyx_unpickle_GreenNoise, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_661__pyx_unpickle_GreenNoise(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoise (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoise", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoise", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_GreenNoise") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoise", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_660__pyx_unpickle_GreenNoise(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_660__pyx_unpickle_GreenNoise(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoise", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x175c081, 0x89bf888, 0x0fb5bb8):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__68, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x175c081, 0x89bf888, 0x0fb5bb8):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoise.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x175c081, 0x89bf888, 0x0fb5bb8):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = GreenNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x175c081, 0x89bf888, 0x0fb5bb8):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoise.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoise), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = GreenNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoise__set_state(((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x175c081, 0x89bf888, 0x0fb5bb8) = (amplitude, frequency, gr, high, low, prev, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoise.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_GreenNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoise", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoise__set_state(struct __pyx_obj_8pysndlib_10generators_GreenNoise *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoise__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gr);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gr);
  __pyx_v___pyx_result->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->high = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->low = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->prev = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->sum = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 7);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[7])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[7])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoise__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_GreenNoiseInterp(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_663__pyx_unpickle_GreenNoiseInterp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_663__pyx_unpickle_GreenNoiseInterp = {"__pyx_unpickle_GreenNoiseInterp", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_663__pyx_unpickle_GreenNoiseInterp, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_663__pyx_unpickle_GreenNoiseInterp(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoiseInterp (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoiseInterp", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoiseInterp", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_GreenNoiseInterp") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_GreenNoiseInterp", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoiseInterp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_662__pyx_unpickle_GreenNoiseInterp(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_662__pyx_unpickle_GreenNoiseInterp(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoiseInterp", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb68a80, 0x98da469, 0x84e530a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__69, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb68a80, 0x98da469, 0x84e530a):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xeb68a80, 0x98da469, 0x84e530a):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xeb68a80, 0x98da469, 0x84e530a):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoiseInterp__set_state(((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xeb68a80, 0x98da469, 0x84e530a) = (amplitude, angle, dv, frequency, high, incr, low, sum))" % __pyx_checksum
 *     __pyx_result = GreenNoiseInterp.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_GreenNoiseInterp(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoiseInterp", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_GreenNoiseInterp__set_state(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_GreenNoiseInterp__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->amplitude = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->angle = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->dv = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->high = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->incr = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->low = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 7, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->sum = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 8);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[8])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 8, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[8])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_GreenNoiseInterp__set_state(<GreenNoiseInterp> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoiseInterp__set_state(GreenNoiseInterp __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.dv = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.high = __pyx_state[4]; __pyx_result.incr = __pyx_state[5]; __pyx_result.low = __pyx_state[6]; __pyx_result.sum = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_GreenNoiseInterp__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MovingSum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_665__pyx_unpickle_MovingSum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_665__pyx_unpickle_MovingSum = {"__pyx_unpickle_MovingSum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_665__pyx_unpickle_MovingSum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_665__pyx_unpickle_MovingSum(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingSum (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingSum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingSum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_MovingSum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingSum", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingSum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_664__pyx_unpickle_MovingSum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_664__pyx_unpickle_MovingSum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingSum", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__70, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingSum.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = MovingSum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingSum.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingSum), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingSum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = MovingSum.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingSum__set_state(((struct __pyx_obj_8pysndlib_10generators_MovingSum *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingSum.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingSum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingSum", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingSum__set_state(struct __pyx_obj_8pysndlib_10generators_MovingSum *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingSum__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingSum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MovingVariance(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_667__pyx_unpickle_MovingVariance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_667__pyx_unpickle_MovingVariance = {"__pyx_unpickle_MovingVariance", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_667__pyx_unpickle_MovingVariance, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_667__pyx_unpickle_MovingVariance(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingVariance (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingVariance", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingVariance", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_MovingVariance") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingVariance", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingVariance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_666__pyx_unpickle_MovingVariance(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_666__pyx_unpickle_MovingVariance(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingVariance", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa7164bc, 0x5c73add, 0x81b6aec):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__71, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa7164bc, 0x5c73add, 0x81b6aec):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 *     __pyx_result = MovingVariance.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xa7164bc, 0x5c73add, 0x81b6aec):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = MovingVariance.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xa7164bc, 0x5c73add, 0x81b6aec):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 *     __pyx_result = MovingVariance.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingVariance), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 *     __pyx_result = MovingVariance.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = MovingVariance.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingVariance__set_state(((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xa7164bc, 0x5c73add, 0x81b6aec) = (gen1, gen2, n))" % __pyx_checksum
 *     __pyx_result = MovingVariance.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingVariance(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingVariance", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingVariance__set_state(struct __pyx_obj_8pysndlib_10generators_MovingVariance *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingVariance__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen1);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen1);
  __pyx_v___pyx_result->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen2);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen2);
  __pyx_v___pyx_result->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingVariance__set_state(<MovingVariance> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingVariance__set_state(MovingVariance __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen1 = __pyx_state[0]; __pyx_result.gen2 = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingVariance__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MovingRMS(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_669__pyx_unpickle_MovingRMS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_669__pyx_unpickle_MovingRMS = {"__pyx_unpickle_MovingRMS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_669__pyx_unpickle_MovingRMS, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_669__pyx_unpickle_MovingRMS(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingRMS (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingRMS", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingRMS", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_MovingRMS") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingRMS", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingRMS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_668__pyx_unpickle_MovingRMS(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_668__pyx_unpickle_MovingRMS(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingRMS", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__70, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingRMS.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = MovingRMS.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingRMS.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingRMS.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = MovingRMS.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingRMS__set_state(((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingRMS.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingRMS(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingRMS", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingRMS__set_state(struct __pyx_obj_8pysndlib_10generators_MovingRMS *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingRMS__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingRMS__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MovingLength(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_671__pyx_unpickle_MovingLength(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_671__pyx_unpickle_MovingLength = {"__pyx_unpickle_MovingLength", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_671__pyx_unpickle_MovingLength, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_671__pyx_unpickle_MovingLength(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingLength (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingLength", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingLength", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_MovingLength") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingLength", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_670__pyx_unpickle_MovingLength(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_670__pyx_unpickle_MovingLength(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingLength", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__70, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingLength.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = MovingLength.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingLength.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingLength.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = MovingLength.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingLength__set_state(((struct __pyx_obj_8pysndlib_10generators_MovingLength *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = MovingLength.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingLength(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingLength__set_state(struct __pyx_obj_8pysndlib_10generators_MovingLength *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingLength__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->__pyx_base.gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->__pyx_base.gen);
  __pyx_v___pyx_result->__pyx_base.gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->__pyx_base.n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingLength__set_state(<MovingLength> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingLength__set_state(MovingLength __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingLength__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_WeightedMovingAverage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_673__pyx_unpickle_WeightedMovingAverage(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_673__pyx_unpickle_WeightedMovingAverage = {"__pyx_unpickle_WeightedMovingAverage", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_673__pyx_unpickle_WeightedMovingAverage, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_673__pyx_unpickle_WeightedMovingAverage(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_WeightedMovingAverage (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_WeightedMovingAverage", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_WeightedMovingAverage", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_WeightedMovingAverage") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_WeightedMovingAverage", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_WeightedMovingAverage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_672__pyx_unpickle_WeightedMovingAverage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_672__pyx_unpickle_WeightedMovingAverage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_WeightedMovingAverage", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb7187fc, 0x06db37b, 0x6117812):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__72, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb7187fc, 0x06db37b, 0x6117812):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xb7187fc, 0x06db37b, 0x6117812):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xb7187fc, 0x06db37b, 0x6117812):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_WeightedMovingAverage__set_state(((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xb7187fc, 0x06db37b, 0x6117812) = (den, dly, n, num, sum, y))" % __pyx_checksum
 *     __pyx_result = WeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_WeightedMovingAverage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_WeightedMovingAverage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_WeightedMovingAverage__set_state(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  int __pyx_t_4;
  Py_ssize_t __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_WeightedMovingAverage__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->den = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->dly);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->dly);
  __pyx_v___pyx_result->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_3;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->num = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->sum = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->y = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_6 = (__pyx_t_5 > 6);
  if (__pyx_t_6) {
  } else {
    __pyx_t_4 = __pyx_t_6;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_6 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_4 = __pyx_t_6;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {

    /* "(tree fragment)":14
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[6])             # <<<<<<<<<<<<<<
 */
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_update); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_7 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = NULL;
    __pyx_t_3 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_3 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_7};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_8, __pyx_callargs+1-__pyx_t_3, 1+__pyx_t_3);
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[6])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_WeightedMovingAverage__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_ExponentiallyWeightedMovingAverage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_675__pyx_unpickle_ExponentiallyWeightedMovingAverage(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_675__pyx_unpickle_ExponentiallyWeightedMovingAverage = {"__pyx_unpickle_ExponentiallyWeightedMovingAverage", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_675__pyx_unpickle_ExponentiallyWeightedMovingAverage, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_675__pyx_unpickle_ExponentiallyWeightedMovingAverage(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_ExponentiallyWeightedMovingAverage (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ExponentiallyWeightedMovingAverage", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ExponentiallyWeightedMovingAverage", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_ExponentiallyWeightedMovingAverage") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_ExponentiallyWeightedMovingAverage", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_ExponentiallyWeightedMovingAverage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_674__pyx_unpickle_ExponentiallyWeightedMovingAverage(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_674__pyx_unpickle_ExponentiallyWeightedMovingAverage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ExponentiallyWeightedMovingAverage", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__70, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x55441aa, 0xc0d7109, 0x4876cfa):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x55441aa, 0xc0d7109, 0x4876cfa) = (gen, n))" % __pyx_checksum
 *     __pyx_result = ExponentiallyWeightedMovingAverage.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_ExponentiallyWeightedMovingAverage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_ExponentiallyWeightedMovingAverage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->gen);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->gen);
  __pyx_v___pyx_result->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->n = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 2);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[2])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_2 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_2 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_2, 1+__pyx_t_2);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[2])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(<ExponentiallyWeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(ExponentiallyWeightedMovingAverage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_Tanhsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_677__pyx_unpickle_Tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_677__pyx_unpickle_Tanhsin = {"__pyx_unpickle_Tanhsin", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_677__pyx_unpickle_Tanhsin, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_677__pyx_unpickle_Tanhsin(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_Tanhsin (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Tanhsin", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Tanhsin", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Tanhsin") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Tanhsin", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_676__pyx_unpickle_Tanhsin(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_676__pyx_unpickle_Tanhsin(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Tanhsin", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__41, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Tanhsin.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = Tanhsin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0x91c421f, 0x565d7d1, 0x1bd1363):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Tanhsin.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_Tanhsin), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Tanhsin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = Tanhsin.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_Tanhsin__set_state(((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x91c421f, 0x565d7d1, 0x1bd1363) = (frequency, osc, r))" % __pyx_checksum
 *     __pyx_result = Tanhsin.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Tanhsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Tanhsin", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_Tanhsin__set_state(struct __pyx_obj_8pysndlib_10generators_Tanhsin *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  double __pyx_t_2;
  int __pyx_t_3;
  Py_ssize_t __pyx_t_4;
  int __pyx_t_5;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_Tanhsin__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->frequency = __pyx_t_2;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pysndlib_3clm_mus_any))))) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GIVEREF(__pyx_t_1);
  __Pyx_GOTREF((PyObject *)__pyx_v___pyx_result->osc);
  __Pyx_DECREF((PyObject *)__pyx_v___pyx_result->osc);
  __pyx_v___pyx_result->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)__pyx_t_1);
  __pyx_t_1 = 0;
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v___pyx_result->r = __pyx_t_2;

  /* "(tree fragment)":13
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 13, __pyx_L1_error)
  }
  __pyx_t_4 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_5 = (__pyx_t_4 > 3);
  if (__pyx_t_5) {
  } else {
    __pyx_t_3 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_5 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
  __pyx_t_3 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_3) {

    /* "(tree fragment)":14
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[3])             # <<<<<<<<<<<<<<
 */
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 14, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_8, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_7, __pyx_callargs+1-__pyx_t_9, 1+__pyx_t_9);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[3])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_Tanhsin__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":1
 * def __pyx_unpickle_MovingFFT(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

/* Python wrapper */
static PyObject *__pyx_pw_8pysndlib_10generators_679__pyx_unpickle_MovingFFT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
); /*proto*/
static PyMethodDef __pyx_mdef_8pysndlib_10generators_679__pyx_unpickle_MovingFFT = {"__pyx_unpickle_MovingFFT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_679__pyx_unpickle_MovingFFT, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_8pysndlib_10generators_679__pyx_unpickle_MovingFFT(PyObject *__pyx_self, 
#if CYTHON_METH_FASTCALL
PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
#else
PyObject *__pyx_args, PyObject *__pyx_kwds
#endif
) {
  PyObject *__pyx_v___pyx_type = 0;
  long __pyx_v___pyx_checksum;
  PyObject *__pyx_v___pyx_state = 0;
  #if !CYTHON_METH_FASTCALL
  CYTHON_UNUSED Py_ssize_t __pyx_nargs;
  #endif
  CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
  PyObject* values[3] = {0,0,0};
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingFFT (wrapper)", 0);
  #if !CYTHON_METH_FASTCALL
  #if CYTHON_ASSUME_SAFE_MACROS
  __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
  #else
  __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
  #endif
  #endif
  __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
  {
    PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
    if (__pyx_kwds) {
      Py_ssize_t kw_args;
      switch (__pyx_nargs) {
        case  3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
      switch (__pyx_nargs) {
        case  0:
        if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingFFT", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
          (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
          kw_args--;
        }
        else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingFFT", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        const Py_ssize_t kwd_pos_args = __pyx_nargs;
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_MovingFFT") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
      }
    } else if (unlikely(__pyx_nargs != 3)) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
      values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
      values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
    }
    __pyx_v___pyx_type = values[0];
    __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
    __pyx_v___pyx_state = values[2];
  }
  goto __pyx_L6_skip;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_MovingFFT", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
  __pyx_L6_skip:;
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingFFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_8pysndlib_10generators_678__pyx_unpickle_MovingFFT(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);

  /* function exit code */
  {
    Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
      __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
    }
  }
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_8pysndlib_10generators_678__pyx_unpickle_MovingFFT(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_v___pyx_PickleError = 0;
  PyObject *__pyx_v___pyx_result = 0;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingFFT", 1);

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__24, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {

    /* "(tree fragment)":5
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError             # <<<<<<<<<<<<<<
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = MovingFFT.__new__(__pyx_type)
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_PickleError);
    __Pyx_GIVEREF(__pyx_n_s_PickleError);
    if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
    __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v___pyx_PickleError = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "(tree fragment)":6
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum             # <<<<<<<<<<<<<<
 *     __pyx_result = MovingFFT.__new__(__pyx_type)
 *     if __pyx_state is not None:
 */
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(1, 6, __pyx_L1_error)

    /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  }

  /* "(tree fragment)":7
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = MovingFFT.__new__(__pyx_type)             # <<<<<<<<<<<<<<
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 */
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  __pyx_t_5 = 0;
  #if CYTHON_UNPACK_METHODS
  if (likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_5 = 1;
    }
  }
  #endif
  {
    PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
    __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_v___pyx_result = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = MovingFFT.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
  if (__pyx_t_2) {

    /* "(tree fragment)":9
 *     __pyx_result = MovingFFT.__new__(__pyx_type)
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)             # <<<<<<<<<<<<<<
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):
 */
    if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
    __pyx_t_1 = __pyx_f_8pysndlib_10generators___pyx_unpickle_MovingFFT__set_state(((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "(tree fragment)":8
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 *     __pyx_result = MovingFFT.__new__(__pyx_type)
 *     if __pyx_state is not None:             # <<<<<<<<<<<<<<
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 *     return __pyx_result
 */
  }

  /* "(tree fragment)":10
 *     if __pyx_state is not None:
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 *     return __pyx_result             # <<<<<<<<<<<<<<
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v___pyx_result);
  __pyx_r = __pyx_v___pyx_result;
  goto __pyx_L0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingFFT(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("pysndlib.generators.__pyx_unpickle_MovingFFT", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v___pyx_PickleError);
  __Pyx_XDECREF(__pyx_v___pyx_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "(tree fragment)":11
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

static PyObject *__pyx_f_8pysndlib_10generators___pyx_unpickle_MovingFFT__set_state(struct __pyx_obj_8pysndlib_10generators_MovingFFT *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  Py_ssize_t __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_t_8;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__pyx_unpickle_MovingFFT__set_state", 1);

  /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  if (unlikely(__pyx_v___pyx_state == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(1, 12, __pyx_L1_error)
  }
  __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_2 > 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 12, __pyx_L1_error)
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {

    /* "(tree fragment)":13
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])             # <<<<<<<<<<<<<<
 */
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(__pyx_v___pyx_state == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(1, 13, __pyx_L1_error)
    }
    __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 13, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    #if CYTHON_UNPACK_METHODS
    if (likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #endif
    {
      PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
      __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
      __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, 13, __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;

    /* "(tree fragment)":12
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):             # <<<<<<<<<<<<<<
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  }

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingFFT__set_state(<MovingFFT> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingFFT__set_state(MovingFFT __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */

  /* 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("pysndlib.generators.__pyx_unpickle_MovingFFT__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator __pyx_vtable_8pysndlib_10generators_CLMGenerator;

static PyObject *__pyx_tp_new_8pysndlib_10generators_CLMGenerator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_CLMGenerator *p;
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  #endif
  p = ((struct __pyx_obj_8pysndlib_10generators_CLMGenerator *)o);
  p->__pyx_vtab = __pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
  (*Py_TYPE(o)->tp_free)(o);
  #else
  {
    freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
    if (tp_free) tp_free(o);
  }
  #endif
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_CLMGenerator[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_CLMGenerator_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_CLMGenerator},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_CLMGenerator},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_CLMGenerator_spec = {
  "pysndlib.generators.CLMGenerator",
  sizeof(struct __pyx_obj_8pysndlib_10generators_CLMGenerator),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_CLMGenerator_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_CLMGenerator = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""CLMGenerator", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_CLMGenerator), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_CLMGenerator, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_CLMGenerator, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nssb __pyx_vtable_8pysndlib_10generators_Nssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Nssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Nssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Nssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Nssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Nssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Nssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Nssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Nssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Nssb_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Nssb_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Nssb_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Nssb_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Nssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Nssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Nssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Nssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Nssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Nssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_4Nssb_frequency, __pyx_setprop_8pysndlib_10generators_4Nssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_4Nssb_ratio, __pyx_setprop_8pysndlib_10generators_4Nssb_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_4Nssb_n, __pyx_setprop_8pysndlib_10generators_4Nssb_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_4Nssb_angle, __pyx_setprop_8pysndlib_10generators_4Nssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_4Nssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_4Nssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nssb_spec = {
  "pysndlib.generators.Nssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_4Nssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_4Nssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxysin __pyx_vtable_8pysndlib_10generators_Nxysin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxysin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nxysin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nxysin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nxysin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxysin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxysin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxysin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxysin_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxysin_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxysin_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxysin_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxysin_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxysin_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxysin_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxysin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxysin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxysin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxysin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxysin_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxysin_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxysin_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxysin_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nxysin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxysin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxysin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nxysin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Nxysin_frequency, __pyx_setprop_8pysndlib_10generators_6Nxysin_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_6Nxysin_ratio, __pyx_setprop_8pysndlib_10generators_6Nxysin_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_6Nxysin_n, __pyx_setprop_8pysndlib_10generators_6Nxysin_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Nxysin_angle, __pyx_setprop_8pysndlib_10generators_6Nxysin_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_6Nxysin_norm, __pyx_setprop_8pysndlib_10generators_6Nxysin_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nxysin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Nxysin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nxysin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nxysin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Nxysin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nxysin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nxysin_spec = {
  "pysndlib.generators.Nxysin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxysin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nxysin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nxysin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nxysin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxysin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Nxysin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nxysin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nxysin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Nxysin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nxysin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxycos __pyx_vtable_8pysndlib_10generators_Nxycos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxycos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nxycos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nxycos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nxycos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxycos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxycos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxycos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxycos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxycos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxycos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxycos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxycos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxycos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxycos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Nxycos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Nxycos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Nxycos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Nxycos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nxycos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Nxycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nxycos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Nxycos_frequency, __pyx_setprop_8pysndlib_10generators_6Nxycos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_6Nxycos_ratio, __pyx_setprop_8pysndlib_10generators_6Nxycos_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_6Nxycos_n, __pyx_setprop_8pysndlib_10generators_6Nxycos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Nxycos_angle, __pyx_setprop_8pysndlib_10generators_6Nxycos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nxycos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Nxycos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nxycos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nxycos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Nxycos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nxycos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nxycos_spec = {
  "pysndlib.generators.Nxycos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxycos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nxycos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nxycos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nxycos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxycos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Nxycos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nxycos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nxycos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Nxycos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nxycos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1cos __pyx_vtable_8pysndlib_10generators_Nxy1cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxy1cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nxy1cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nxy1cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nxy1cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1cos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1cos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1cos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1cos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1cos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1cos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nxy1cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nxy1cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Nxy1cos_frequency, __pyx_setprop_8pysndlib_10generators_7Nxy1cos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_7Nxy1cos_ratio, __pyx_setprop_8pysndlib_10generators_7Nxy1cos_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_7Nxy1cos_n, __pyx_setprop_8pysndlib_10generators_7Nxy1cos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7Nxy1cos_angle, __pyx_setprop_8pysndlib_10generators_7Nxy1cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nxy1cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Nxy1cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nxy1cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nxy1cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Nxy1cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nxy1cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nxy1cos_spec = {
  "pysndlib.generators.Nxy1cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxy1cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nxy1cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nxy1cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nxy1cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxy1cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Nxy1cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nxy1cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nxy1cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Nxy1cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nxy1cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nxy1sin __pyx_vtable_8pysndlib_10generators_Nxy1sin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nxy1sin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nxy1sin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nxy1sin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nxy1sin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1sin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1sin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1sin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1sin_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1sin_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1sin_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1sin_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1sin_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1sin_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nxy1sin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nxy1sin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nxy1sin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nxy1sin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nxy1sin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Nxy1sin_frequency, __pyx_setprop_8pysndlib_10generators_7Nxy1sin_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_7Nxy1sin_ratio, __pyx_setprop_8pysndlib_10generators_7Nxy1sin_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_7Nxy1sin_n, __pyx_setprop_8pysndlib_10generators_7Nxy1sin_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7Nxy1sin_angle, __pyx_setprop_8pysndlib_10generators_7Nxy1sin_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nxy1sin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Nxy1sin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nxy1sin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nxy1sin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Nxy1sin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nxy1sin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nxy1sin_spec = {
  "pysndlib.generators.Nxy1sin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxy1sin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nxy1sin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nxy1sin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nxy1sin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nxy1sin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Nxy1sin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nxy1sin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nxy1sin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Nxy1sin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nxy1sin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddcos __pyx_vtable_8pysndlib_10generators_Noddcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Noddcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Noddcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Noddcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddcos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddcos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddcos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddcos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddcos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddcos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddcos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Noddcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Noddcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Noddcos_frequency, __pyx_setprop_8pysndlib_10generators_7Noddcos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_7Noddcos_ratio, __pyx_setprop_8pysndlib_10generators_7Noddcos_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_7Noddcos_n, __pyx_setprop_8pysndlib_10generators_7Noddcos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7Noddcos_angle, __pyx_setprop_8pysndlib_10generators_7Noddcos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Noddcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Noddcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Noddcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Noddcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Noddcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Noddcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Noddcos_spec = {
  "pysndlib.generators.Noddcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Noddcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Noddcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Noddcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Noddcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Noddcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Noddcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Noddcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Noddcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddssb __pyx_vtable_8pysndlib_10generators_Noddssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Noddssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Noddssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Noddssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddssb_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddssb_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddssb_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddssb_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Noddssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Noddssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Noddssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Noddssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Noddssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Noddssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Noddssb_frequency, __pyx_setprop_8pysndlib_10generators_7Noddssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_7Noddssb_ratio, __pyx_setprop_8pysndlib_10generators_7Noddssb_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_7Noddssb_n, __pyx_setprop_8pysndlib_10generators_7Noddssb_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7Noddssb_angle, __pyx_setprop_8pysndlib_10generators_7Noddssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Noddssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Noddssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Noddssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Noddssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Noddssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Noddssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Noddssb_spec = {
  "pysndlib.generators.Noddssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Noddssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Noddssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Noddssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Noddssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Noddssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Noddssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Noddssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Noddssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos2 __pyx_vtable_8pysndlib_10generators_Ncos2;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos2(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Ncos2 *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Ncos2 *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Ncos2;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos2_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos2_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos2_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos2_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos2_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos2_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos2_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos2_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos2_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos2_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos2_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Ncos2[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos2_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos2_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Ncos2[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Ncos2_frequency, __pyx_setprop_8pysndlib_10generators_5Ncos2_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Ncos2_n, __pyx_setprop_8pysndlib_10generators_5Ncos2_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Ncos2_angle, __pyx_setprop_8pysndlib_10generators_5Ncos2_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Ncos2_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Ncos2_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Ncos2},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Ncos2},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Ncos2_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Ncos2},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Ncos2_spec = {
  "pysndlib.generators.Ncos2",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos2),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Ncos2_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Ncos2 = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Ncos2", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos2), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Ncos2_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Ncos2, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Ncos2, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Ncos2_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Ncos2, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos4 __pyx_vtable_8pysndlib_10generators_Ncos4;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos4(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Ncos4 *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_Ncos2(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Ncos4 *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Ncos4;
  return o;
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Ncos4[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos4_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos4_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Ncos4_slots[] = {
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Ncos4},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Ncos4},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Ncos4_spec = {
  "pysndlib.generators.Ncos4",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos4),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Ncos4_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Ncos4 = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Ncos4", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos4), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_8pysndlib_10generators_5Ncos2_5__call__, /*tp_call*/
  #else
  0, /*tp_call*/
  #endif
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Ncos4, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_8pysndlib_10generators_5Ncos2_1__init__, /*tp_init*/
  #else
  0, /*tp_init*/
  #endif
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Ncos4, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Npcos __pyx_vtable_8pysndlib_10generators_Npcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Npcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Npcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Npcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Npcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Npcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Npcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Npcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Npcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Npcos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Npcos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Npcos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Npcos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Npcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Npcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Npcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Npcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Npcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Npcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Npcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Npcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Npcos_frequency, __pyx_setprop_8pysndlib_10generators_5Npcos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Npcos_n, __pyx_setprop_8pysndlib_10generators_5Npcos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Npcos_angle, __pyx_setprop_8pysndlib_10generators_5Npcos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Npcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Npcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Npcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Npcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Npcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Npcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Npcos_spec = {
  "pysndlib.generators.Npcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Npcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Npcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Npcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Npcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Npcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Npcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Npcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Npcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Ncos5 __pyx_vtable_8pysndlib_10generators_Ncos5;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Ncos5(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Ncos5 *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Ncos5 *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Ncos5;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos5_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos5_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos5_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos5_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos5_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos5_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos5_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ncos5_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ncos5_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ncos5_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ncos5_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Ncos5[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos5_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ncos5_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Ncos5[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Ncos5_frequency, __pyx_setprop_8pysndlib_10generators_5Ncos5_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Ncos5_n, __pyx_setprop_8pysndlib_10generators_5Ncos5_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Ncos5_angle, __pyx_setprop_8pysndlib_10generators_5Ncos5_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Ncos5_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Ncos5_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Ncos5},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Ncos5},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Ncos5_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Ncos5},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Ncos5_spec = {
  "pysndlib.generators.Ncos5",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos5),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Ncos5_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Ncos5 = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Ncos5", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ncos5), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Ncos5_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Ncos5, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Ncos5, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Ncos5_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Ncos5, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nsin5 __pyx_vtable_8pysndlib_10generators_Nsin5;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nsin5(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nsin5 *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nsin5 *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nsin5;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nsin5_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nsin5_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nsin5_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nsin5_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nsin5_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nsin5_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nsin5_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nsin5_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nsin5_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nsin5_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nsin5_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nsin5_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nsin5_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nsin5_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nsin5_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nsin5[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nsin5_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nsin5_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nsin5[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Nsin5_frequency, __pyx_setprop_8pysndlib_10generators_5Nsin5_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Nsin5_n, __pyx_setprop_8pysndlib_10generators_5Nsin5_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Nsin5_angle, __pyx_setprop_8pysndlib_10generators_5Nsin5_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Nsin5_norm, __pyx_setprop_8pysndlib_10generators_5Nsin5_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nsin5_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Nsin5_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nsin5},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nsin5},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Nsin5_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nsin5},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nsin5_spec = {
  "pysndlib.generators.Nsin5",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nsin5),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nsin5_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nsin5 = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nsin5", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nsin5), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Nsin5_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nsin5, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nsin5, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Nsin5_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nsin5, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nrcos __pyx_vtable_8pysndlib_10generators_Nrcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nrcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nrcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nrcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nrcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_mus_order(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_order(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_9mus_order_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_rr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_2rr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_rr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_2rr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_r1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_2r1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_r1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_2r1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_e1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_2e1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_e1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_2e1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_e2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_2e2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_e2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_2e2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrcos_trouble(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrcos_trouble(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrcos_7trouble_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nrcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nrcos[] = {
  {(char *)"mus_order", __pyx_getprop_8pysndlib_10generators_5Nrcos_mus_order, __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_order, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_5Nrcos_mus_frequency, __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_5Nrcos_mus_scaler, __pyx_setprop_8pysndlib_10generators_5Nrcos_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Nrcos_frequency, __pyx_setprop_8pysndlib_10generators_5Nrcos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Nrcos_n, __pyx_setprop_8pysndlib_10generators_5Nrcos_n, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Nrcos_r, __pyx_setprop_8pysndlib_10generators_5Nrcos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Nrcos_angle, __pyx_setprop_8pysndlib_10generators_5Nrcos_angle, (char *)0, 0},
  {(char *)"rr", __pyx_getprop_8pysndlib_10generators_5Nrcos_rr, __pyx_setprop_8pysndlib_10generators_5Nrcos_rr, (char *)0, 0},
  {(char *)"r1", __pyx_getprop_8pysndlib_10generators_5Nrcos_r1, __pyx_setprop_8pysndlib_10generators_5Nrcos_r1, (char *)0, 0},
  {(char *)"e1", __pyx_getprop_8pysndlib_10generators_5Nrcos_e1, __pyx_setprop_8pysndlib_10generators_5Nrcos_e1, (char *)0, 0},
  {(char *)"e2", __pyx_getprop_8pysndlib_10generators_5Nrcos_e2, __pyx_setprop_8pysndlib_10generators_5Nrcos_e2, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Nrcos_norm, __pyx_setprop_8pysndlib_10generators_5Nrcos_norm, (char *)0, 0},
  {(char *)"trouble", __pyx_getprop_8pysndlib_10generators_5Nrcos_trouble, __pyx_setprop_8pysndlib_10generators_5Nrcos_trouble, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nrcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Nrcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nrcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nrcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Nrcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nrcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nrcos_spec = {
  "pysndlib.generators.Nrcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nrcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nrcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nrcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nrcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nrcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Nrcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nrcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nrcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Nrcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nrcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nrssb __pyx_vtable_8pysndlib_10generators_Nrssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nrssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nrssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nrssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nrssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_interp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_6interp_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_interp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_6interp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_rn(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_2rn_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_rn(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_2rn_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_rn1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_rn1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_3rn1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nrssb_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nrssb_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nrssb_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nrssb_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nrssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nrssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nrssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Nrssb_frequency, __pyx_setprop_8pysndlib_10generators_5Nrssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5Nrssb_ratio, __pyx_setprop_8pysndlib_10generators_5Nrssb_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Nrssb_n, __pyx_setprop_8pysndlib_10generators_5Nrssb_n, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Nrssb_r, __pyx_setprop_8pysndlib_10generators_5Nrssb_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Nrssb_angle, __pyx_setprop_8pysndlib_10generators_5Nrssb_angle, (char *)0, 0},
  {(char *)"interp", __pyx_getprop_8pysndlib_10generators_5Nrssb_interp, __pyx_setprop_8pysndlib_10generators_5Nrssb_interp, (char *)0, 0},
  {(char *)"rn", __pyx_getprop_8pysndlib_10generators_5Nrssb_rn, __pyx_setprop_8pysndlib_10generators_5Nrssb_rn, (char *)0, 0},
  {(char *)"rn1", __pyx_getprop_8pysndlib_10generators_5Nrssb_rn1, __pyx_setprop_8pysndlib_10generators_5Nrssb_rn1, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Nrssb_norm, __pyx_setprop_8pysndlib_10generators_5Nrssb_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nrssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Nrssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nrssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nrssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Nrssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nrssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nrssb_spec = {
  "pysndlib.generators.Nrssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nrssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nrssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nrssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nrssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nrssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Nrssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nrssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nrssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Nrssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nrssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nkssb __pyx_vtable_8pysndlib_10generators_Nkssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nkssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nkssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nkssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nkssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_mus_order(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_mus_order(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_9mus_order_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Nkssb_interp(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Nkssb_6interp_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Nkssb_interp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Nkssb_6interp_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nkssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Nkssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nkssb[] = {
  {(char *)"mus_order", __pyx_getprop_8pysndlib_10generators_5Nkssb_mus_order, __pyx_setprop_8pysndlib_10generators_5Nkssb_mus_order, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Nkssb_frequency, __pyx_setprop_8pysndlib_10generators_5Nkssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5Nkssb_ratio, __pyx_setprop_8pysndlib_10generators_5Nkssb_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Nkssb_n, __pyx_setprop_8pysndlib_10generators_5Nkssb_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Nkssb_angle, __pyx_setprop_8pysndlib_10generators_5Nkssb_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Nkssb_norm, __pyx_setprop_8pysndlib_10generators_5Nkssb_norm, (char *)0, 0},
  {(char *)"interp", __pyx_getprop_8pysndlib_10generators_5Nkssb_interp, __pyx_setprop_8pysndlib_10generators_5Nkssb_interp, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nkssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Nkssb_7__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nkssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nkssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Nkssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nkssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nkssb_spec = {
  "pysndlib.generators.Nkssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nkssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nkssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nkssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nkssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nkssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Nkssb_7__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nkssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nkssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Nkssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nkssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nsincos __pyx_vtable_8pysndlib_10generators_Nsincos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nsincos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nsincos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nsincos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nsincos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_n2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_2n2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_n2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_2n2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_cosn(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_cosn(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_4cosn_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Nsincos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Nsincos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Nsincos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Nsincos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nsincos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nsincos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Nsincos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nsincos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Nsincos_frequency, __pyx_setprop_8pysndlib_10generators_7Nsincos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_7Nsincos_n, __pyx_setprop_8pysndlib_10generators_7Nsincos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7Nsincos_angle, __pyx_setprop_8pysndlib_10generators_7Nsincos_angle, (char *)0, 0},
  {(char *)"n2", __pyx_getprop_8pysndlib_10generators_7Nsincos_n2, __pyx_setprop_8pysndlib_10generators_7Nsincos_n2, (char *)0, 0},
  {(char *)"cosn", __pyx_getprop_8pysndlib_10generators_7Nsincos_cosn, __pyx_setprop_8pysndlib_10generators_7Nsincos_cosn, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_7Nsincos_norm, __pyx_setprop_8pysndlib_10generators_7Nsincos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nsincos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Nsincos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nsincos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nsincos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Nsincos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nsincos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nsincos_spec = {
  "pysndlib.generators.Nsincos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nsincos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nsincos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nsincos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nsincos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nsincos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Nsincos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nsincos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nsincos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Nsincos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nsincos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_N1cos __pyx_vtable_8pysndlib_10generators_N1cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_N1cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_N1cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_N1cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_N1cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5N1cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5N1cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5N1cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5N1cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5N1cos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5N1cos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5N1cos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5N1cos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5N1cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5N1cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5N1cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5N1cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_N1cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5N1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5N1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_N1cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5N1cos_frequency, __pyx_setprop_8pysndlib_10generators_5N1cos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5N1cos_n, __pyx_setprop_8pysndlib_10generators_5N1cos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5N1cos_angle, __pyx_setprop_8pysndlib_10generators_5N1cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_N1cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5N1cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_N1cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_N1cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5N1cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_N1cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_N1cos_spec = {
  "pysndlib.generators.N1cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_N1cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_N1cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_N1cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""N1cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_N1cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5N1cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_N1cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_N1cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5N1cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_N1cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Npos1cos __pyx_vtable_8pysndlib_10generators_Npos1cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Npos1cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Npos1cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Npos1cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Npos1cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos1cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos1cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos1cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos1cos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos1cos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos1cos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos1cos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos1cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos1cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos1cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Npos1cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Npos1cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_8Npos1cos_frequency, __pyx_setprop_8pysndlib_10generators_8Npos1cos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_8Npos1cos_n, __pyx_setprop_8pysndlib_10generators_8Npos1cos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_8Npos1cos_angle, __pyx_setprop_8pysndlib_10generators_8Npos1cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Npos1cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_8Npos1cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Npos1cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Npos1cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_8Npos1cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Npos1cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Npos1cos_spec = {
  "pysndlib.generators.Npos1cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npos1cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Npos1cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Npos1cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Npos1cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npos1cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_8Npos1cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Npos1cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Npos1cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_8Npos1cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Npos1cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Npos3cos __pyx_vtable_8pysndlib_10generators_Npos3cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Npos3cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Npos3cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Npos3cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Npos3cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos3cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos3cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos3cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos3cos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos3cos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos3cos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos3cos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Npos3cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Npos3cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Npos3cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Npos3cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos3cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Npos3cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Npos3cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_8Npos3cos_frequency, __pyx_setprop_8pysndlib_10generators_8Npos3cos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_8Npos3cos_n, __pyx_setprop_8pysndlib_10generators_8Npos3cos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_8Npos3cos_angle, __pyx_setprop_8pysndlib_10generators_8Npos3cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Npos3cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_8Npos3cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Npos3cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Npos3cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_8Npos3cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Npos3cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Npos3cos_spec = {
  "pysndlib.generators.Npos3cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npos3cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Npos3cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Npos3cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Npos3cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Npos3cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_8Npos3cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Npos3cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Npos3cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_8Npos3cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Npos3cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rcos __pyx_vtable_8pysndlib_10generators_Rcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rcos;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Rcos(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Rcos *p = (struct __pyx_obj_8pysndlib_10generators_Rcos *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Rcos) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Rcos(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Rcos *p = (struct __pyx_obj_8pysndlib_10generators_Rcos *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Rcos)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Rcos(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Rcos *p = (struct __pyx_obj_8pysndlib_10generators_Rcos *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Rcos);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_mus_scale(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_mus_scale(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_9mus_scale_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_4Rcos_3osc_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_rr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_2rr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_rr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_2rr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_rrp1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_rrp1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_4rrp1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_rrm1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_rrm1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_4rrm1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_r2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_2r2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_r2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_2r2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rcos[] = {
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_4Rcos_mus_frequency, __pyx_setprop_8pysndlib_10generators_4Rcos_mus_frequency, (char *)0, 0},
  {(char *)"mus_scale", __pyx_getprop_8pysndlib_10generators_4Rcos_mus_scale, __pyx_setprop_8pysndlib_10generators_4Rcos_mus_scale, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_4Rcos_osc, __pyx_setprop_8pysndlib_10generators_4Rcos_osc, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_4Rcos_r, __pyx_setprop_8pysndlib_10generators_4Rcos_r, (char *)0, 0},
  {(char *)"rr", __pyx_getprop_8pysndlib_10generators_4Rcos_rr, __pyx_setprop_8pysndlib_10generators_4Rcos_rr, (char *)0, 0},
  {(char *)"rrp1", __pyx_getprop_8pysndlib_10generators_4Rcos_rrp1, __pyx_setprop_8pysndlib_10generators_4Rcos_rrp1, (char *)0, 0},
  {(char *)"rrm1", __pyx_getprop_8pysndlib_10generators_4Rcos_rrm1, __pyx_setprop_8pysndlib_10generators_4Rcos_rrm1, (char *)0, 0},
  {(char *)"r2", __pyx_getprop_8pysndlib_10generators_4Rcos_r2, __pyx_setprop_8pysndlib_10generators_4Rcos_r2, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_4Rcos_norm, __pyx_setprop_8pysndlib_10generators_4Rcos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rcos_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Rcos},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_4Rcos_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Rcos},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Rcos},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_4Rcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rcos_spec = {
  "pysndlib.generators.Rcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Rcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Rcos, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_4Rcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Rcos, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Rcos, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_4Rcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rssb __pyx_vtable_8pysndlib_10generators_Rssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rssb_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rssb_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rssb_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Rssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Rssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Rssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Rssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Rssb_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rssb[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_4Rssb_mus_scaler, __pyx_setprop_8pysndlib_10generators_4Rssb_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_4Rssb_frequency, __pyx_setprop_8pysndlib_10generators_4Rssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_4Rssb_ratio, __pyx_setprop_8pysndlib_10generators_4Rssb_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_4Rssb_r, __pyx_setprop_8pysndlib_10generators_4Rssb_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_4Rssb_angle, __pyx_setprop_8pysndlib_10generators_4Rssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_4Rssb_7__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_4Rssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rssb_spec = {
  "pysndlib.generators.Rssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_4Rssb_7__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_4Rssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rxysin __pyx_vtable_8pysndlib_10generators_Rxysin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rxysin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rxysin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rxysin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rxysin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_rr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_2rr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_rr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_2rr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxysin_r2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxysin_2r2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxysin_r2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxysin_2r2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rxysin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxysin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxysin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rxysin[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_6Rxysin_mus_scaler, __pyx_setprop_8pysndlib_10generators_6Rxysin_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Rxysin_frequency, __pyx_setprop_8pysndlib_10generators_6Rxysin_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_6Rxysin_ratio, __pyx_setprop_8pysndlib_10generators_6Rxysin_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Rxysin_r, __pyx_setprop_8pysndlib_10generators_6Rxysin_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Rxysin_angle, __pyx_setprop_8pysndlib_10generators_6Rxysin_angle, (char *)0, 0},
  {(char *)"rr", __pyx_getprop_8pysndlib_10generators_6Rxysin_rr, __pyx_setprop_8pysndlib_10generators_6Rxysin_rr, (char *)0, 0},
  {(char *)"r2", __pyx_getprop_8pysndlib_10generators_6Rxysin_r2, __pyx_setprop_8pysndlib_10generators_6Rxysin_r2, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rxysin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Rxysin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rxysin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rxysin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Rxysin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rxysin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rxysin_spec = {
  "pysndlib.generators.Rxysin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rxysin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rxysin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rxysin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rxysin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rxysin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Rxysin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rxysin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rxysin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Rxysin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rxysin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rxycos __pyx_vtable_8pysndlib_10generators_Rxycos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rxycos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rxycos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rxycos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rxycos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_rr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_2rr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_rr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_2rr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_r2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_2r2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_r2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_2r2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rxycos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rxycos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rxycos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rxycos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rxycos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rxycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rxycos[] = {
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_6Rxycos_mus_frequency, __pyx_setprop_8pysndlib_10generators_6Rxycos_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Rxycos_frequency, __pyx_setprop_8pysndlib_10generators_6Rxycos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_6Rxycos_ratio, __pyx_setprop_8pysndlib_10generators_6Rxycos_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Rxycos_r, __pyx_setprop_8pysndlib_10generators_6Rxycos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Rxycos_angle, __pyx_setprop_8pysndlib_10generators_6Rxycos_angle, (char *)0, 0},
  {(char *)"rr", __pyx_getprop_8pysndlib_10generators_6Rxycos_rr, __pyx_setprop_8pysndlib_10generators_6Rxycos_rr, (char *)0, 0},
  {(char *)"r2", __pyx_getprop_8pysndlib_10generators_6Rxycos_r2, __pyx_setprop_8pysndlib_10generators_6Rxycos_r2, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_6Rxycos_norm, __pyx_setprop_8pysndlib_10generators_6Rxycos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rxycos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Rxycos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rxycos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rxycos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Rxycos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rxycos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rxycos_spec = {
  "pysndlib.generators.Rxycos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rxycos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rxycos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rxycos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rxycos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rxycos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Rxycos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rxycos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rxycos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Rxycos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rxycos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_SafeRxycos __pyx_vtable_8pysndlib_10generators_SafeRxycos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_SafeRxycos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_SafeRxycos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_SafeRxycos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_SafeRxycos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_10mus_offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10SafeRxycos_cutoff(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10SafeRxycos_cutoff(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10SafeRxycos_6cutoff_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_SafeRxycos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_SafeRxycos[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_scaler, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_scaler, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_frequency, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_frequency, (char *)0, 0},
  {(char *)"mus_offset", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_mus_offset, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_mus_offset, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_frequency, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_ratio, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_r, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_angle, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_angle, (char *)0, 0},
  {(char *)"cutoff", __pyx_getprop_8pysndlib_10generators_10SafeRxycos_cutoff, __pyx_setprop_8pysndlib_10generators_10SafeRxycos_cutoff, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_SafeRxycos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_10SafeRxycos_7__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_SafeRxycos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_SafeRxycos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_10SafeRxycos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_SafeRxycos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_SafeRxycos_spec = {
  "pysndlib.generators.SafeRxycos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_SafeRxycos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_SafeRxycos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_SafeRxycos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""SafeRxycos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_SafeRxycos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_10SafeRxycos_7__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_SafeRxycos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_SafeRxycos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_10SafeRxycos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_SafeRxycos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Ercos __pyx_vtable_8pysndlib_10generators_Ercos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Ercos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Ercos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Ercos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Ercos;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Ercos(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Ercos *p = (struct __pyx_obj_8pysndlib_10generators_Ercos *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Ercos) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Ercos(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Ercos *p = (struct __pyx_obj_8pysndlib_10generators_Ercos *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Ercos)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Ercos(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Ercos *p = (struct __pyx_obj_8pysndlib_10generators_Ercos *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Ercos);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_cosh_t(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_cosh_t(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_6cosh_t_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_offset(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_6offset_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_offset(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_6offset_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_6scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_6scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Ercos_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Ercos_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Ercos_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Ercos_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5Ercos_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Ercos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ercos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Ercos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Ercos[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_5Ercos_mus_phase, __pyx_setprop_8pysndlib_10generators_5Ercos_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_5Ercos_mus_frequency, __pyx_setprop_8pysndlib_10generators_5Ercos_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Ercos_frequency, __pyx_setprop_8pysndlib_10generators_5Ercos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Ercos_r, __pyx_setprop_8pysndlib_10generators_5Ercos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Ercos_angle, __pyx_setprop_8pysndlib_10generators_5Ercos_angle, (char *)0, 0},
  {(char *)"cosh_t", __pyx_getprop_8pysndlib_10generators_5Ercos_cosh_t, __pyx_setprop_8pysndlib_10generators_5Ercos_cosh_t, (char *)0, 0},
  {(char *)"offset", __pyx_getprop_8pysndlib_10generators_5Ercos_offset, __pyx_setprop_8pysndlib_10generators_5Ercos_offset, (char *)0, 0},
  {(char *)"scaler", __pyx_getprop_8pysndlib_10generators_5Ercos_scaler, __pyx_setprop_8pysndlib_10generators_5Ercos_scaler, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_5Ercos_osc, __pyx_setprop_8pysndlib_10generators_5Ercos_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Ercos_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Ercos},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Ercos_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Ercos},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Ercos},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Ercos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Ercos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Ercos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Ercos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Ercos_spec = {
  "pysndlib.generators.Ercos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ercos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Ercos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Ercos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Ercos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Ercos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Ercos, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Ercos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Ercos, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Ercos, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Ercos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Ercos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Ercos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Ercos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Erssb __pyx_vtable_8pysndlib_10generators_Erssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Erssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Erssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Erssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Erssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Erssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Erssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Erssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Erssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Erssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Erssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Erssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Erssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Erssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Erssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Erssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Erssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Erssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Erssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Erssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Erssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Erssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Erssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Erssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Erssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Erssb_frequency, __pyx_setprop_8pysndlib_10generators_5Erssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5Erssb_ratio, __pyx_setprop_8pysndlib_10generators_5Erssb_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Erssb_r, __pyx_setprop_8pysndlib_10generators_5Erssb_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Erssb_angle, __pyx_setprop_8pysndlib_10generators_5Erssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Erssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Erssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Erssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Erssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Erssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Erssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Erssb_spec = {
  "pysndlib.generators.Erssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Erssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Erssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Erssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Erssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Erssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Erssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Erssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Erssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Erssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Erssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_R2cos __pyx_vtable_8pysndlib_10generators_R2cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_R2cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_R2cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_R2cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_R2cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2cos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2cos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2cos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2cos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_R2cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_R2cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5R2cos_frequency, __pyx_setprop_8pysndlib_10generators_5R2cos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5R2cos_r, __pyx_setprop_8pysndlib_10generators_5R2cos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5R2cos_angle, __pyx_setprop_8pysndlib_10generators_5R2cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_R2cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5R2cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_R2cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_R2cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5R2cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_R2cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_R2cos_spec = {
  "pysndlib.generators.R2cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_R2cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_R2cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""R2cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5R2cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_R2cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_R2cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5R2cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_R2cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_R2ssb __pyx_vtable_8pysndlib_10generators_R2ssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_R2ssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_R2ssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_R2ssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_R2ssb;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_R2ssb(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_R2ssb *p = (struct __pyx_obj_8pysndlib_10generators_R2ssb *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_R2ssb) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_R2ssb(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_R2ssb *p = (struct __pyx_obj_8pysndlib_10generators_R2ssb *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_R2ssb)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_R2ssb(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_R2ssb *p = (struct __pyx_obj_8pysndlib_10generators_R2ssb *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_R2ssb);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2ssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2ssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2ssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2ssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2ssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2ssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2ssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2ssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2ssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2ssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5R2ssb_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5R2ssb_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5R2ssb_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_R2ssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2ssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5R2ssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_R2ssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5R2ssb_frequency, __pyx_setprop_8pysndlib_10generators_5R2ssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5R2ssb_ratio, __pyx_setprop_8pysndlib_10generators_5R2ssb_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5R2ssb_r, __pyx_setprop_8pysndlib_10generators_5R2ssb_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5R2ssb_angle, __pyx_setprop_8pysndlib_10generators_5R2ssb_angle, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_5R2ssb_osc, __pyx_setprop_8pysndlib_10generators_5R2ssb_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_R2ssb_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_R2ssb},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5R2ssb_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_R2ssb},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_R2ssb},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_R2ssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_R2ssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5R2ssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_R2ssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_R2ssb_spec = {
  "pysndlib.generators.R2ssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2ssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_R2ssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_R2ssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""R2ssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2ssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_R2ssb, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5R2ssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_R2ssb, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_R2ssb, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_R2ssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_R2ssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5R2ssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_R2ssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Eoddcos __pyx_vtable_8pysndlib_10generators_Eoddcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Eoddcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Eoddcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Eoddcos;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Eoddcos(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *p = (struct __pyx_obj_8pysndlib_10generators_Eoddcos *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Eoddcos) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Eoddcos(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *p = (struct __pyx_obj_8pysndlib_10generators_Eoddcos *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Eoddcos)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Eoddcos(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Eoddcos *p = (struct __pyx_obj_8pysndlib_10generators_Eoddcos *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Eoddcos);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Eoddcos_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Eoddcos_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Eoddcos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Eoddcos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Eoddcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Eoddcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Eoddcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Eoddcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Eoddcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Eoddcos_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Eoddcos_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_7Eoddcos_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Eoddcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Eoddcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Eoddcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Eoddcos[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_7Eoddcos_mus_phase, __pyx_setprop_8pysndlib_10generators_7Eoddcos_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_7Eoddcos_mus_frequency, __pyx_setprop_8pysndlib_10generators_7Eoddcos_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Eoddcos_frequency, __pyx_setprop_8pysndlib_10generators_7Eoddcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_7Eoddcos_r, __pyx_setprop_8pysndlib_10generators_7Eoddcos_r, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_7Eoddcos_osc, __pyx_setprop_8pysndlib_10generators_7Eoddcos_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Eoddcos_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Eoddcos},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Eoddcos_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Eoddcos},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Eoddcos},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Eoddcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Eoddcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Eoddcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Eoddcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Eoddcos_spec = {
  "pysndlib.generators.Eoddcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Eoddcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Eoddcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Eoddcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Eoddcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Eoddcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Eoddcos, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Eoddcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Eoddcos, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Eoddcos, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Eoddcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Eoddcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Eoddcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Eoddcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkcos __pyx_vtable_8pysndlib_10generators_Rkcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rkcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rkcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rkcos;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Rkcos(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Rkcos *p = (struct __pyx_obj_8pysndlib_10generators_Rkcos *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Rkcos) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Rkcos(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Rkcos *p = (struct __pyx_obj_8pysndlib_10generators_Rkcos *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Rkcos)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Rkcos(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Rkcos *p = (struct __pyx_obj_8pysndlib_10generators_Rkcos *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Rkcos);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkcos_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkcos_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5Rkcos_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rkcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rkcos[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_5Rkcos_mus_phase, __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_5Rkcos_mus_frequency, __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_5Rkcos_mus_scaler, __pyx_setprop_8pysndlib_10generators_5Rkcos_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Rkcos_frequency, __pyx_setprop_8pysndlib_10generators_5Rkcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Rkcos_r, __pyx_setprop_8pysndlib_10generators_5Rkcos_r, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Rkcos_norm, __pyx_setprop_8pysndlib_10generators_5Rkcos_norm, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_5Rkcos_osc, __pyx_setprop_8pysndlib_10generators_5Rkcos_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rkcos_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Rkcos},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Rkcos_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Rkcos},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Rkcos},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rkcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rkcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Rkcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rkcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rkcos_spec = {
  "pysndlib.generators.Rkcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Rkcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rkcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rkcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Rkcos, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Rkcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Rkcos, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Rkcos, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rkcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rkcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Rkcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rkcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rksin __pyx_vtable_8pysndlib_10generators_Rksin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rksin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rksin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rksin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rksin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rksin_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rksin_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rksin_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rksin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rksin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rksin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rksin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rksin_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rksin_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rksin_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rksin_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rksin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rksin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rksin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rksin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rksin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rksin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rksin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rksin[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_5Rksin_mus_scaler, __pyx_setprop_8pysndlib_10generators_5Rksin_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Rksin_frequency, __pyx_setprop_8pysndlib_10generators_5Rksin_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Rksin_r, __pyx_setprop_8pysndlib_10generators_5Rksin_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Rksin_angle, __pyx_setprop_8pysndlib_10generators_5Rksin_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rksin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Rksin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rksin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rksin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Rksin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rksin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rksin_spec = {
  "pysndlib.generators.Rksin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rksin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rksin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rksin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rksin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rksin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Rksin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rksin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rksin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Rksin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rksin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkssb __pyx_vtable_8pysndlib_10generators_Rkssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rkssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rkssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rkssb;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Rkssb(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Rkssb *p = (struct __pyx_obj_8pysndlib_10generators_Rkssb *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Rkssb) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Rkssb(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Rkssb *p = (struct __pyx_obj_8pysndlib_10generators_Rkssb *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Rkssb)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Rkssb(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Rkssb *p = (struct __pyx_obj_8pysndlib_10generators_Rkssb *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Rkssb);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkssb_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkssb_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkssb_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkssb_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkssb_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Rkssb_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Rkssb_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5Rkssb_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rkssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Rkssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rkssb[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_5Rkssb_mus_scaler, __pyx_setprop_8pysndlib_10generators_5Rkssb_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Rkssb_frequency, __pyx_setprop_8pysndlib_10generators_5Rkssb_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Rkssb_r, __pyx_setprop_8pysndlib_10generators_5Rkssb_r, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Rkssb_norm, __pyx_setprop_8pysndlib_10generators_5Rkssb_norm, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_5Rkssb_osc, __pyx_setprop_8pysndlib_10generators_5Rkssb_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rkssb_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Rkssb},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Rkssb_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Rkssb},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Rkssb},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rkssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rkssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Rkssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rkssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rkssb_spec = {
  "pysndlib.generators.Rkssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Rkssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rkssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rkssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Rkssb, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Rkssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Rkssb, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Rkssb, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rkssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rkssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Rkssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rkssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkfcos __pyx_vtable_8pysndlib_10generators_Rkfcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkfcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rkfcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rkfcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rkfcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rkfcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rkfcos[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_6Rkfcos_mus_phase, __pyx_setprop_8pysndlib_10generators_6Rkfcos_mus_phase, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_6Rkfcos_mus_scaler, __pyx_setprop_8pysndlib_10generators_6Rkfcos_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Rkfcos_frequency, __pyx_setprop_8pysndlib_10generators_6Rkfcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Rkfcos_r, __pyx_setprop_8pysndlib_10generators_6Rkfcos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Rkfcos_angle, __pyx_setprop_8pysndlib_10generators_6Rkfcos_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_6Rkfcos_norm, __pyx_setprop_8pysndlib_10generators_6Rkfcos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rkfcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Rkfcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rkfcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rkfcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Rkfcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rkfcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rkfcos_spec = {
  "pysndlib.generators.Rkfcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkfcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rkfcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rkfcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rkfcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkfcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Rkfcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rkfcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rkfcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Rkfcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rkfcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkfssb __pyx_vtable_8pysndlib_10generators_Rkfssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkfssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rkfssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rkfssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rkfssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfssb_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfssb_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfssb_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Rkfssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Rkfssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Rkfssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rkfssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Rkfssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rkfssb[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_6Rkfssb_mus_scaler, __pyx_setprop_8pysndlib_10generators_6Rkfssb_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Rkfssb_frequency, __pyx_setprop_8pysndlib_10generators_6Rkfssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_6Rkfssb_ratio, __pyx_setprop_8pysndlib_10generators_6Rkfssb_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Rkfssb_r, __pyx_setprop_8pysndlib_10generators_6Rkfssb_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Rkfssb_angle, __pyx_setprop_8pysndlib_10generators_6Rkfssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rkfssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Rkfssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rkfssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rkfssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Rkfssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rkfssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rkfssb_spec = {
  "pysndlib.generators.Rkfssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkfssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rkfssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rkfssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rkfssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkfssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Rkfssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rkfssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rkfssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Rkfssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rkfssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_R2kfcos __pyx_vtable_8pysndlib_10generators_R2kfcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_R2kfcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_R2kfcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_R2kfcos;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_R2kfcos(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *p = (struct __pyx_obj_8pysndlib_10generators_R2kfcos *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_R2kfcos) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_R2kfcos(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *p = (struct __pyx_obj_8pysndlib_10generators_R2kfcos *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_R2kfcos)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_R2kfcos(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_R2kfcos *p = (struct __pyx_obj_8pysndlib_10generators_R2kfcos *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_R2kfcos);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_k(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_1k_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_k(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_1k_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_rr1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_rr1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_3rr1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_r2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_r2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_2r2_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_3osc_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2kfcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2kfcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2kfcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_R2kfcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2kfcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2kfcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_R2kfcos[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_7R2kfcos_mus_phase, __pyx_setprop_8pysndlib_10generators_7R2kfcos_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_7R2kfcos_mus_frequency, __pyx_setprop_8pysndlib_10generators_7R2kfcos_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7R2kfcos_frequency, __pyx_setprop_8pysndlib_10generators_7R2kfcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_7R2kfcos_r, __pyx_setprop_8pysndlib_10generators_7R2kfcos_r, (char *)0, 0},
  {(char *)"k", __pyx_getprop_8pysndlib_10generators_7R2kfcos_k, __pyx_setprop_8pysndlib_10generators_7R2kfcos_k, (char *)0, 0},
  {(char *)"rr1", __pyx_getprop_8pysndlib_10generators_7R2kfcos_rr1, __pyx_setprop_8pysndlib_10generators_7R2kfcos_rr1, (char *)0, 0},
  {(char *)"r2", __pyx_getprop_8pysndlib_10generators_7R2kfcos_r2, __pyx_setprop_8pysndlib_10generators_7R2kfcos_r2, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_7R2kfcos_osc, __pyx_setprop_8pysndlib_10generators_7R2kfcos_osc, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_7R2kfcos_norm, __pyx_setprop_8pysndlib_10generators_7R2kfcos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_R2kfcos_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_R2kfcos},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7R2kfcos_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_R2kfcos},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_R2kfcos},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_R2kfcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_R2kfcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7R2kfcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_R2kfcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_R2kfcos_spec = {
  "pysndlib.generators.R2kfcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2kfcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_R2kfcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_R2kfcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""R2kfcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2kfcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_R2kfcos, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7R2kfcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_R2kfcos, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_R2kfcos, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_R2kfcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_R2kfcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7R2kfcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_R2kfcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_K2sin __pyx_vtable_8pysndlib_10generators_K2sin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_K2sin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_K2sin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_K2sin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_K2sin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2sin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2sin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2sin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2sin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2sin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2sin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2sin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2sin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_K2sin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2sin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2sin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_K2sin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5K2sin_frequency, __pyx_setprop_8pysndlib_10generators_5K2sin_frequency, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5K2sin_angle, __pyx_setprop_8pysndlib_10generators_5K2sin_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_K2sin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5K2sin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_K2sin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_K2sin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5K2sin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_K2sin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_K2sin_spec = {
  "pysndlib.generators.K2sin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2sin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_K2sin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_K2sin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""K2sin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2sin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5K2sin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_K2sin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_K2sin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5K2sin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_K2sin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_K2cos __pyx_vtable_8pysndlib_10generators_K2cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_K2cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_K2cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_K2cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_K2cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_K2cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_K2cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5K2cos_frequency, __pyx_setprop_8pysndlib_10generators_5K2cos_frequency, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5K2cos_angle, __pyx_setprop_8pysndlib_10generators_5K2cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_K2cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5K2cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_K2cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_K2cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5K2cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_K2cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_K2cos_spec = {
  "pysndlib.generators.K2cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_K2cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_K2cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""K2cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5K2cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_K2cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_K2cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5K2cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_K2cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_K2ssb __pyx_vtable_8pysndlib_10generators_K2ssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_K2ssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_K2ssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_K2ssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_K2ssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2ssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2ssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2ssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2ssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2ssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2ssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K2ssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K2ssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K2ssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K2ssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_K2ssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2ssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K2ssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_K2ssb[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5K2ssb_frequency, __pyx_setprop_8pysndlib_10generators_5K2ssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5K2ssb_ratio, __pyx_setprop_8pysndlib_10generators_5K2ssb_ratio, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5K2ssb_angle, __pyx_setprop_8pysndlib_10generators_5K2ssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_K2ssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5K2ssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_K2ssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_K2ssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5K2ssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_K2ssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_K2ssb_spec = {
  "pysndlib.generators.K2ssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2ssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_K2ssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_K2ssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""K2ssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_K2ssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5K2ssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_K2ssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_K2ssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5K2ssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_K2ssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Dblsum __pyx_vtable_8pysndlib_10generators_Dblsum;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Dblsum(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Dblsum *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Dblsum *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Dblsum;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Dblsum_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Dblsum_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Dblsum_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Dblsum_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Dblsum_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Dblsum_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Dblsum_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Dblsum_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Dblsum_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Dblsum_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Dblsum_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Dblsum_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Dblsum_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Dblsum_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Dblsum[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Dblsum_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Dblsum_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Dblsum[] = {
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_6Dblsum_mus_frequency, __pyx_setprop_8pysndlib_10generators_6Dblsum_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Dblsum_frequency, __pyx_setprop_8pysndlib_10generators_6Dblsum_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Dblsum_r, __pyx_setprop_8pysndlib_10generators_6Dblsum_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Dblsum_angle, __pyx_setprop_8pysndlib_10generators_6Dblsum_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Dblsum_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Dblsum_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Dblsum},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Dblsum},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Dblsum_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Dblsum},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Dblsum_spec = {
  "pysndlib.generators.Dblsum",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Dblsum),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Dblsum_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Dblsum = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Dblsum", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Dblsum), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Dblsum_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Dblsum, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Dblsum, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Dblsum_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Dblsum, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Rkoddssb __pyx_vtable_8pysndlib_10generators_Rkoddssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Rkoddssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Rkoddssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Rkoddssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Rkoddssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_rr1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_rr1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_3rr1_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Rkoddssb_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Rkoddssb_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Rkoddssb_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Rkoddssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Rkoddssb[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_mus_scaler, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_frequency, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_ratio, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_r, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_r, (char *)0, 0},
  {(char *)"rr1", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_rr1, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_rr1, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_angle, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_8Rkoddssb_norm, __pyx_setprop_8pysndlib_10generators_8Rkoddssb_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Rkoddssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_8Rkoddssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Rkoddssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Rkoddssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_8Rkoddssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Rkoddssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Rkoddssb_spec = {
  "pysndlib.generators.Rkoddssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkoddssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Rkoddssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Rkoddssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Rkoddssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Rkoddssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_8Rkoddssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Rkoddssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Rkoddssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_8Rkoddssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Rkoddssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Krksin __pyx_vtable_8pysndlib_10generators_Krksin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Krksin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Krksin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Krksin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Krksin;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Krksin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Krksin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Krksin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Krksin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Krksin_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Krksin_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Krksin_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Krksin_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_6Krksin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_6Krksin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_6Krksin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_6Krksin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Krksin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Krksin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_6Krksin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Krksin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_6Krksin_frequency, __pyx_setprop_8pysndlib_10generators_6Krksin_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_6Krksin_r, __pyx_setprop_8pysndlib_10generators_6Krksin_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_6Krksin_angle, __pyx_setprop_8pysndlib_10generators_6Krksin_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Krksin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_6Krksin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Krksin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Krksin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_6Krksin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Krksin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Krksin_spec = {
  "pysndlib.generators.Krksin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Krksin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Krksin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Krksin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Krksin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Krksin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_6Krksin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Krksin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Krksin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_6Krksin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Krksin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Absin __pyx_vtable_8pysndlib_10generators_Absin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Absin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Absin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Absin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Absin;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Absin(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Absin *p = (struct __pyx_obj_8pysndlib_10generators_Absin *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Absin) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Absin(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Absin *p = (struct __pyx_obj_8pysndlib_10generators_Absin *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Absin)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Absin(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Absin *p = (struct __pyx_obj_8pysndlib_10generators_Absin *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Absin);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Absin_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Absin_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Absin_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Absin_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Absin_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Absin_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Absin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Absin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Absin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Absin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Absin_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Absin_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Absin_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Absin_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5Absin_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Absin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Absin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Absin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Absin[] = {
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_5Absin_mus_frequency, __pyx_setprop_8pysndlib_10generators_5Absin_mus_frequency, (char *)0, 0},
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_5Absin_mus_phase, __pyx_setprop_8pysndlib_10generators_5Absin_mus_phase, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Absin_frequency, __pyx_setprop_8pysndlib_10generators_5Absin_frequency, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_5Absin_osc, __pyx_setprop_8pysndlib_10generators_5Absin_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Absin_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Absin},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Absin_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Absin},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Absin},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Absin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Absin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Absin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Absin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Absin_spec = {
  "pysndlib.generators.Absin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Absin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Absin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Absin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Absin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Absin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Absin, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Absin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Absin, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Absin, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Absin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Absin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Absin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Absin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Abcos __pyx_vtable_8pysndlib_10generators_Abcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Abcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Abcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Abcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Abcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_b(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_1b_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_b(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_1b_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_ab(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_2ab_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_ab(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_2ab_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Abcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Abcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Abcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Abcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Abcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Abcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Abcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Abcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Abcos_frequency, __pyx_setprop_8pysndlib_10generators_5Abcos_frequency, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_5Abcos_a, __pyx_setprop_8pysndlib_10generators_5Abcos_a, (char *)0, 0},
  {(char *)"b", __pyx_getprop_8pysndlib_10generators_5Abcos_b, __pyx_setprop_8pysndlib_10generators_5Abcos_b, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Abcos_angle, __pyx_setprop_8pysndlib_10generators_5Abcos_angle, (char *)0, 0},
  {(char *)"ab", __pyx_getprop_8pysndlib_10generators_5Abcos_ab, __pyx_setprop_8pysndlib_10generators_5Abcos_ab, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Abcos_norm, __pyx_setprop_8pysndlib_10generators_5Abcos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Abcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Abcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Abcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Abcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Abcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Abcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Abcos_spec = {
  "pysndlib.generators.Abcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Abcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Abcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Abcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Abcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Abcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Abcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Abcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Abcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Abcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Abcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_R2k2cos __pyx_vtable_8pysndlib_10generators_R2k2cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_R2k2cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_R2k2cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_R2k2cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_R2k2cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2k2cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2k2cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2k2cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2k2cos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2k2cos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2k2cos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2k2cos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7R2k2cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7R2k2cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7R2k2cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_R2k2cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2k2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7R2k2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_R2k2cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7R2k2cos_frequency, __pyx_setprop_8pysndlib_10generators_7R2k2cos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_7R2k2cos_r, __pyx_setprop_8pysndlib_10generators_7R2k2cos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7R2k2cos_angle, __pyx_setprop_8pysndlib_10generators_7R2k2cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_R2k2cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7R2k2cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_R2k2cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_R2k2cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7R2k2cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_R2k2cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_R2k2cos_spec = {
  "pysndlib.generators.R2k2cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2k2cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_R2k2cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_R2k2cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""R2k2cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_R2k2cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7R2k2cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_R2k2cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_R2k2cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7R2k2cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_R2k2cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Blsaw __pyx_vtable_8pysndlib_10generators_Blsaw;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Blsaw(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Blsaw *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Blsaw *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Blsaw;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Blsaw_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Blsaw_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Blsaw_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Blsaw_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Blsaw_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Blsaw_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Blsaw_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Blsaw_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Blsaw_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Blsaw_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Blsaw_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Blsaw_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Blsaw_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Blsaw_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Blsaw_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Blsaw[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Blsaw_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Blsaw_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Blsaw[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Blsaw_frequency, __pyx_setprop_8pysndlib_10generators_5Blsaw_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Blsaw_n, __pyx_setprop_8pysndlib_10generators_5Blsaw_n, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Blsaw_r, __pyx_setprop_8pysndlib_10generators_5Blsaw_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Blsaw_angle, __pyx_setprop_8pysndlib_10generators_5Blsaw_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Blsaw_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Blsaw_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Blsaw},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Blsaw},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Blsaw_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Blsaw},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Blsaw_spec = {
  "pysndlib.generators.Blsaw",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Blsaw),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Blsaw_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Blsaw = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Blsaw", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Blsaw), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Blsaw_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Blsaw, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Blsaw, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Blsaw_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Blsaw, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Asyfm __pyx_vtable_8pysndlib_10generators_Asyfm;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Asyfm(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Asyfm *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Asyfm *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Asyfm;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Asyfm_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Asyfm_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Asyfm_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Asyfm_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Asyfm_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Asyfm_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Asyfm_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Asyfm_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Asyfm_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Asyfm_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Asyfm_index(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Asyfm_5index_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Asyfm_index(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Asyfm_5index_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Asyfm_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Asyfm_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Asyfm_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Asyfm_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Asyfm[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_11__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Asyfm_13__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Asyfm[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Asyfm_frequency, __pyx_setprop_8pysndlib_10generators_5Asyfm_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5Asyfm_ratio, __pyx_setprop_8pysndlib_10generators_5Asyfm_ratio, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Asyfm_r, __pyx_setprop_8pysndlib_10generators_5Asyfm_r, (char *)0, 0},
  {(char *)"index", __pyx_getprop_8pysndlib_10generators_5Asyfm_index, __pyx_setprop_8pysndlib_10generators_5Asyfm_index, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Asyfm_angle, __pyx_setprop_8pysndlib_10generators_5Asyfm_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Asyfm_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Asyfm_9__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Asyfm},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Asyfm},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Asyfm_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Asyfm},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Asyfm_spec = {
  "pysndlib.generators.Asyfm",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Asyfm),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Asyfm_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Asyfm = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Asyfm", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Asyfm), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Asyfm_9__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Asyfm, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Asyfm, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Asyfm_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Asyfm, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Bess __pyx_vtable_8pysndlib_10generators_Bess;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Bess(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Bess *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Bess *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Bess;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Bess_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Bess_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Bess_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Bess_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Bess_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Bess_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Bess_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Bess_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Bess_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Bess_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Bess_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Bess_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Bess_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Bess_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Bess_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Bess_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Bess[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Bess_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Bess_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Bess[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_4Bess_frequency, __pyx_setprop_8pysndlib_10generators_4Bess_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_4Bess_n, __pyx_setprop_8pysndlib_10generators_4Bess_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_4Bess_angle, __pyx_setprop_8pysndlib_10generators_4Bess_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_4Bess_norm, __pyx_setprop_8pysndlib_10generators_4Bess_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Bess_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_4Bess_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Bess},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Bess},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_4Bess_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Bess},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Bess_spec = {
  "pysndlib.generators.Bess",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Bess),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Bess_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Bess = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Bess", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Bess), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_4Bess_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Bess, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Bess, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_4Bess_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Bess, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Jjcos __pyx_vtable_8pysndlib_10generators_Jjcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Jjcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Jjcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Jjcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Jjcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jjcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jjcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jjcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jjcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jjcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jjcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jjcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jjcos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jjcos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jjcos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jjcos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jjcos_k(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jjcos_1k_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jjcos_k(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jjcos_1k_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jjcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jjcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jjcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jjcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Jjcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jjcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jjcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Jjcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Jjcos_frequency, __pyx_setprop_8pysndlib_10generators_5Jjcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Jjcos_r, __pyx_setprop_8pysndlib_10generators_5Jjcos_r, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_5Jjcos_a, __pyx_setprop_8pysndlib_10generators_5Jjcos_a, (char *)0, 0},
  {(char *)"k", __pyx_getprop_8pysndlib_10generators_5Jjcos_k, __pyx_setprop_8pysndlib_10generators_5Jjcos_k, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Jjcos_angle, __pyx_setprop_8pysndlib_10generators_5Jjcos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Jjcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Jjcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Jjcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Jjcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Jjcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Jjcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Jjcos_spec = {
  "pysndlib.generators.Jjcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jjcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Jjcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Jjcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Jjcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jjcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Jjcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Jjcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Jjcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Jjcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Jjcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_J0evencos __pyx_vtable_8pysndlib_10generators_J0evencos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_J0evencos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_J0evencos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_J0evencos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_J0evencos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9J0evencos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9J0evencos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9J0evencos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9J0evencos_index(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9J0evencos_5index_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9J0evencos_index(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9J0evencos_5index_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9J0evencos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9J0evencos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9J0evencos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9J0evencos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_J0evencos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9J0evencos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9J0evencos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_J0evencos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_9J0evencos_frequency, __pyx_setprop_8pysndlib_10generators_9J0evencos_frequency, (char *)0, 0},
  {(char *)"index", __pyx_getprop_8pysndlib_10generators_9J0evencos_index, __pyx_setprop_8pysndlib_10generators_9J0evencos_index, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_9J0evencos_angle, __pyx_setprop_8pysndlib_10generators_9J0evencos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_J0evencos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9J0evencos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_J0evencos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_J0evencos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9J0evencos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_J0evencos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_J0evencos_spec = {
  "pysndlib.generators.J0evencos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_J0evencos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_J0evencos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_J0evencos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""J0evencos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_J0evencos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9J0evencos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_J0evencos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_J0evencos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9J0evencos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_J0evencos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_J2cos __pyx_vtable_8pysndlib_10generators_J2cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_J2cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_J2cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_J2cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_J2cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5J2cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5J2cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5J2cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5J2cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5J2cos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5J2cos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5J2cos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5J2cos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5J2cos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5J2cos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5J2cos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5J2cos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5J2cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5J2cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5J2cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5J2cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5J2cos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5J2cos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5J2cos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5J2cos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_J2cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5J2cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5J2cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_J2cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5J2cos_frequency, __pyx_setprop_8pysndlib_10generators_5J2cos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5J2cos_n, __pyx_setprop_8pysndlib_10generators_5J2cos_n, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5J2cos_r, __pyx_setprop_8pysndlib_10generators_5J2cos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5J2cos_angle, __pyx_setprop_8pysndlib_10generators_5J2cos_angle, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5J2cos_norm, __pyx_setprop_8pysndlib_10generators_5J2cos_norm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_J2cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5J2cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_J2cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_J2cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5J2cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_J2cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_J2cos_spec = {
  "pysndlib.generators.J2cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_J2cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_J2cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_J2cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""J2cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_J2cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5J2cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_J2cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_J2cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5J2cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_J2cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Jpcos __pyx_vtable_8pysndlib_10generators_Jpcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Jpcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Jpcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Jpcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Jpcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jpcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jpcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jpcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jpcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jpcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jpcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jpcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jpcos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jpcos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jpcos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jpcos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jpcos_k(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jpcos_1k_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jpcos_k(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jpcos_1k_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jpcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jpcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jpcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jpcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Jpcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jpcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jpcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Jpcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Jpcos_frequency, __pyx_setprop_8pysndlib_10generators_5Jpcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Jpcos_r, __pyx_setprop_8pysndlib_10generators_5Jpcos_r, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_5Jpcos_a, __pyx_setprop_8pysndlib_10generators_5Jpcos_a, (char *)0, 0},
  {(char *)"k", __pyx_getprop_8pysndlib_10generators_5Jpcos_k, __pyx_setprop_8pysndlib_10generators_5Jpcos_k, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Jpcos_angle, __pyx_setprop_8pysndlib_10generators_5Jpcos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Jpcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Jpcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Jpcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Jpcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Jpcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Jpcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Jpcos_spec = {
  "pysndlib.generators.Jpcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jpcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Jpcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Jpcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Jpcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jpcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Jpcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Jpcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Jpcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Jpcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Jpcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Jncos __pyx_vtable_8pysndlib_10generators_Jncos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Jncos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Jncos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Jncos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Jncos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jncos_ra(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jncos_2ra_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jncos_ra(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jncos_2ra_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Jncos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jncos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jncos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Jncos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Jncos_frequency, __pyx_setprop_8pysndlib_10generators_5Jncos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Jncos_r, __pyx_setprop_8pysndlib_10generators_5Jncos_r, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_5Jncos_a, __pyx_setprop_8pysndlib_10generators_5Jncos_a, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_5Jncos_n, __pyx_setprop_8pysndlib_10generators_5Jncos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Jncos_angle, __pyx_setprop_8pysndlib_10generators_5Jncos_angle, (char *)0, 0},
  {(char *)"ra", __pyx_getprop_8pysndlib_10generators_5Jncos_ra, __pyx_setprop_8pysndlib_10generators_5Jncos_ra, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Jncos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Jncos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Jncos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Jncos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Jncos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Jncos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Jncos_spec = {
  "pysndlib.generators.Jncos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jncos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Jncos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Jncos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Jncos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jncos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Jncos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Jncos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Jncos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Jncos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Jncos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_J0j1cos __pyx_vtable_8pysndlib_10generators_J0j1cos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_J0j1cos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_J0j1cos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_J0j1cos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_J0j1cos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7J0j1cos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7J0j1cos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7J0j1cos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7J0j1cos_index(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7J0j1cos_5index_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7J0j1cos_index(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7J0j1cos_5index_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7J0j1cos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7J0j1cos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7J0j1cos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_J0j1cos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7J0j1cos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7J0j1cos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_J0j1cos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7J0j1cos_frequency, __pyx_setprop_8pysndlib_10generators_7J0j1cos_frequency, (char *)0, 0},
  {(char *)"index", __pyx_getprop_8pysndlib_10generators_7J0j1cos_index, __pyx_setprop_8pysndlib_10generators_7J0j1cos_index, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_7J0j1cos_angle, __pyx_setprop_8pysndlib_10generators_7J0j1cos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_J0j1cos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7J0j1cos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_J0j1cos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_J0j1cos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7J0j1cos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_J0j1cos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_J0j1cos_spec = {
  "pysndlib.generators.J0j1cos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_J0j1cos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_J0j1cos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_J0j1cos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""J0j1cos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_J0j1cos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7J0j1cos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_J0j1cos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_J0j1cos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7J0j1cos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_J0j1cos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Jycos __pyx_vtable_8pysndlib_10generators_Jycos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Jycos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Jycos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Jycos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Jycos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jycos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jycos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jycos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jycos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jycos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jycos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jycos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jycos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Jycos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Jycos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Jycos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Jycos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Jycos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jycos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Jycos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Jycos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Jycos_frequency, __pyx_setprop_8pysndlib_10generators_5Jycos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Jycos_r, __pyx_setprop_8pysndlib_10generators_5Jycos_r, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_5Jycos_a, __pyx_setprop_8pysndlib_10generators_5Jycos_a, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Jycos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Jycos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Jycos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Jycos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Jycos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Jycos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Jycos_spec = {
  "pysndlib.generators.Jycos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jycos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Jycos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Jycos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Jycos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jycos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Jycos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Jycos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Jycos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Jycos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Jycos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Jcos __pyx_vtable_8pysndlib_10generators_Jcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Jcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Jcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Jcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Jcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Jcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Jcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Jcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Jcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Jcos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Jcos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Jcos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Jcos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Jcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Jcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Jcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Jcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_4Jcos_a(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_4Jcos_1a_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_4Jcos_a(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_4Jcos_1a_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Jcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Jcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_4Jcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Jcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_4Jcos_frequency, __pyx_setprop_8pysndlib_10generators_4Jcos_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_4Jcos_n, __pyx_setprop_8pysndlib_10generators_4Jcos_n, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_4Jcos_r, __pyx_setprop_8pysndlib_10generators_4Jcos_r, (char *)0, 0},
  {(char *)"a", __pyx_getprop_8pysndlib_10generators_4Jcos_a, __pyx_setprop_8pysndlib_10generators_4Jcos_a, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Jcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_4Jcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Jcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Jcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_4Jcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Jcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Jcos_spec = {
  "pysndlib.generators.Jcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Jcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Jcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Jcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Jcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_4Jcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Jcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Jcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_4Jcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Jcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Blackman __pyx_vtable_8pysndlib_10generators_Blackman;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Blackman(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Blackman *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Blackman *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Blackman;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Blackman(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Blackman *p = (struct __pyx_obj_8pysndlib_10generators_Blackman *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Blackman) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Blackman(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Blackman *p = (struct __pyx_obj_8pysndlib_10generators_Blackman *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Blackman)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Blackman(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Blackman *p = (struct __pyx_obj_8pysndlib_10generators_Blackman *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Blackman);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Blackman_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Blackman_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Blackman_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Blackman_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Blackman_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Blackman_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Blackman_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Blackman_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_8Blackman_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_8Blackman_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_8Blackman_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_8Blackman_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_8Blackman_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Blackman[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_8Blackman_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Blackman[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_8Blackman_frequency, __pyx_setprop_8pysndlib_10generators_8Blackman_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_8Blackman_n, __pyx_setprop_8pysndlib_10generators_8Blackman_n, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_8Blackman_osc, __pyx_setprop_8pysndlib_10generators_8Blackman_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Blackman_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Blackman},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_8Blackman_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Blackman},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Blackman},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Blackman},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Blackman},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_8Blackman_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Blackman},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Blackman_spec = {
  "pysndlib.generators.Blackman",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Blackman),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Blackman_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Blackman = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Blackman", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Blackman), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Blackman, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_8Blackman_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Blackman, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Blackman, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Blackman, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Blackman, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_8Blackman_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Blackman, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Fmssb __pyx_vtable_8pysndlib_10generators_Fmssb;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Fmssb(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Fmssb *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Fmssb *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Fmssb;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Fmssb_index(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Fmssb_5index_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Fmssb_index(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Fmssb_5index_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Fmssb_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Fmssb_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Fmssb_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Fmssb_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Fmssb_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Fmssb_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Fmssb_idx(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Fmssb_3idx_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Fmssb_idx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Fmssb_3idx_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Fmssb_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Fmssb_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Fmssb_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Fmssb_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Fmssb[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Fmssb_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Fmssb_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Fmssb[] = {
  {(char *)"index", __pyx_getprop_8pysndlib_10generators_5Fmssb_index, __pyx_setprop_8pysndlib_10generators_5Fmssb_index, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Fmssb_frequency, __pyx_setprop_8pysndlib_10generators_5Fmssb_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_5Fmssb_ratio, __pyx_setprop_8pysndlib_10generators_5Fmssb_ratio, (char *)0, 0},
  {(char *)"idx", __pyx_getprop_8pysndlib_10generators_5Fmssb_idx, __pyx_setprop_8pysndlib_10generators_5Fmssb_idx, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Fmssb_angle, __pyx_setprop_8pysndlib_10generators_5Fmssb_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Fmssb_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Fmssb_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Fmssb},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Fmssb},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Fmssb_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Fmssb},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Fmssb_spec = {
  "pysndlib.generators.Fmssb",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Fmssb),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Fmssb_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Fmssb = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Fmssb", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Fmssb), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Fmssb_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Fmssb, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Fmssb, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Fmssb_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Fmssb, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_K3sin __pyx_vtable_8pysndlib_10generators_K3sin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_K3sin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_K3sin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_K3sin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_K3sin;
  p->coeffs = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_K3sin(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_K3sin *p = (struct __pyx_obj_8pysndlib_10generators_K3sin *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_K3sin) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->coeffs);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_K3sin(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_K3sin *p = (struct __pyx_obj_8pysndlib_10generators_K3sin *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_K3sin)); if (e) return e;
  if (p->coeffs) {
    e = (*v)(((PyObject *)p->coeffs), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_K3sin(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_K3sin *p = (struct __pyx_obj_8pysndlib_10generators_K3sin *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_K3sin);
  tmp = ((PyObject*)p->coeffs);
  p->coeffs = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K3sin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K3sin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K3sin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K3sin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K3sin_coeffs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K3sin_coeffs(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_5K3sin_6coeffs_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5K3sin_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5K3sin_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5K3sin_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5K3sin_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_K3sin[] = {
  {"mus_reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_7mus_reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5K3sin_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_K3sin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5K3sin_frequency, __pyx_setprop_8pysndlib_10generators_5K3sin_frequency, (char *)0, 0},
  {(char *)"coeffs", __pyx_getprop_8pysndlib_10generators_5K3sin_coeffs, __pyx_setprop_8pysndlib_10generators_5K3sin_coeffs, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5K3sin_angle, __pyx_setprop_8pysndlib_10generators_5K3sin_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_K3sin_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_K3sin},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5K3sin_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_K3sin},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_K3sin},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_K3sin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_K3sin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5K3sin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_K3sin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_K3sin_spec = {
  "pysndlib.generators.K3sin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_K3sin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_K3sin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_K3sin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""K3sin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_K3sin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_K3sin, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5K3sin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_K3sin, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_K3sin, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_K3sin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_K3sin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5K3sin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_K3sin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Izcos __pyx_vtable_8pysndlib_10generators_Izcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Izcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Izcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Izcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Izcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_dc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_2dc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_dc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_2dc_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_norm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_4norm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_4norm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_5Izcos_inorm(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_5Izcos_5inorm_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_5Izcos_inorm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_5Izcos_5inorm_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Izcos[] = {
  {"mus_reset", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_7mus_reset, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_5Izcos_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Izcos[] = {
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_5Izcos_mus_scaler, __pyx_setprop_8pysndlib_10generators_5Izcos_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_5Izcos_frequency, __pyx_setprop_8pysndlib_10generators_5Izcos_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_5Izcos_r, __pyx_setprop_8pysndlib_10generators_5Izcos_r, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_5Izcos_angle, __pyx_setprop_8pysndlib_10generators_5Izcos_angle, (char *)0, 0},
  {(char *)"dc", __pyx_getprop_8pysndlib_10generators_5Izcos_dc, __pyx_setprop_8pysndlib_10generators_5Izcos_dc, (char *)0, 0},
  {(char *)"norm", __pyx_getprop_8pysndlib_10generators_5Izcos_norm, __pyx_setprop_8pysndlib_10generators_5Izcos_norm, (char *)0, 0},
  {(char *)"inorm", __pyx_getprop_8pysndlib_10generators_5Izcos_inorm, __pyx_setprop_8pysndlib_10generators_5Izcos_inorm, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Izcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_5Izcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Izcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Izcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_5Izcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Izcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Izcos_spec = {
  "pysndlib.generators.Izcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Izcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Izcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Izcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Izcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Izcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_5Izcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Izcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Izcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_5Izcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Izcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSquareWave __pyx_vtable_8pysndlib_10generators_AdjustableSquareWave;

static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableSquareWave(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_AdjustableSquareWave;
  p->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  p->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSquareWave(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSquareWave) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->p1);
  Py_CLEAR(p->p2);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_AdjustableSquareWave(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_AdjustableSquareWave)); if (e) return e;
  if (p->p1) {
    e = (*v)(((PyObject *)p->p1), a); if (e) return e;
  }
  if (p->p2) {
    e = (*v)(((PyObject *)p->p2), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_AdjustableSquareWave(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_AdjustableSquareWave);
  tmp = ((PyObject*)p->p1);
  p->p1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->p2);
  p->p2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_duty_factor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_duty_factor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_11duty_factor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_sum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_sum(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_3sum_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_p1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_p1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p1_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_p2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_p2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_2p2_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_AdjustableSquareWave[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_AdjustableSquareWave[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_phase, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_frequency, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_mus_scaler, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_frequency, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_frequency, (char *)0, 0},
  {(char *)"duty_factor", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_duty_factor, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_duty_factor, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_amplitude, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_amplitude, (char *)0, 0},
  {(char *)"sum", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_sum, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_sum, (char *)0, 0},
  {(char *)"p1", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_p1, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_p1, (char *)0, 0},
  {(char *)"p2", __pyx_getprop_8pysndlib_10generators_20AdjustableSquareWave_p2, __pyx_setprop_8pysndlib_10generators_20AdjustableSquareWave_p2, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_AdjustableSquareWave_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_AdjustableSquareWave},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_AdjustableSquareWave},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_AdjustableSquareWave},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_AdjustableSquareWave},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_AdjustableSquareWave},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_AdjustableSquareWave},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_AdjustableSquareWave_spec = {
  "pysndlib.generators.AdjustableSquareWave",
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_AdjustableSquareWave_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_AdjustableSquareWave = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""AdjustableSquareWave", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSquareWave, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_AdjustableSquareWave, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_AdjustableSquareWave, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_AdjustableSquareWave, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_AdjustableSquareWave, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_20AdjustableSquareWave_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_AdjustableSquareWave, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableTriangleWave __pyx_vtable_8pysndlib_10generators_AdjustableTriangleWave;

static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableTriangleWave(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_AdjustableTriangleWave;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_AdjustableTriangleWave(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_AdjustableTriangleWave) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_AdjustableTriangleWave(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_AdjustableTriangleWave)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_AdjustableTriangleWave(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_AdjustableTriangleWave);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_duty_factor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_duty_factor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_11duty_factor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3gen_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_top(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_top(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3top_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mtop(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mtop(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_4mtop_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_scl(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_scl(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3scl_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_val(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_val(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_3val_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_AdjustableTriangleWave[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_AdjustableTriangleWave[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_phase, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_frequency, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_scaler, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_frequency, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_frequency, (char *)0, 0},
  {(char *)"duty_factor", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_duty_factor, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_duty_factor, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_amplitude, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_amplitude, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_gen, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_gen, (char *)0, 0},
  {(char *)"top", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_top, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_top, (char *)0, 0},
  {(char *)"mtop", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_mtop, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_mtop, (char *)0, 0},
  {(char *)"scl", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_scl, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_scl, (char *)0, 0},
  {(char *)"val", __pyx_getprop_8pysndlib_10generators_22AdjustableTriangleWave_val, __pyx_setprop_8pysndlib_10generators_22AdjustableTriangleWave_val, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_AdjustableTriangleWave_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_AdjustableTriangleWave},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_AdjustableTriangleWave},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_AdjustableTriangleWave},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_AdjustableTriangleWave},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_AdjustableTriangleWave},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_AdjustableTriangleWave},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_AdjustableTriangleWave_spec = {
  "pysndlib.generators.AdjustableTriangleWave",
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_AdjustableTriangleWave_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_AdjustableTriangleWave = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""AdjustableTriangleWave", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_AdjustableTriangleWave, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_AdjustableTriangleWave, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_AdjustableTriangleWave, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_AdjustableTriangleWave, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_AdjustableTriangleWave, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_22AdjustableTriangleWave_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_AdjustableTriangleWave, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableSawtoothWave __pyx_vtable_8pysndlib_10generators_AdjustableSawtoothWave;

static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableSawtoothWave(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_AdjustableSawtoothWave;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSawtoothWave(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSawtoothWave) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_AdjustableSawtoothWave(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_AdjustableSawtoothWave)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_AdjustableSawtoothWave(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_AdjustableSawtoothWave);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_duty_factor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_duty_factor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_11duty_factor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3gen_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_top(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_top(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3top_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mtop(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mtop(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_4mtop_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_scl(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_scl(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3scl_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_val(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_val(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_3val_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_AdjustableSawtoothWave[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_AdjustableSawtoothWave[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_phase, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_frequency, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_scaler, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_frequency, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_frequency, (char *)0, 0},
  {(char *)"duty_factor", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_duty_factor, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_duty_factor, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_amplitude, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_amplitude, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_gen, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_gen, (char *)0, 0},
  {(char *)"top", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_top, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_top, (char *)0, 0},
  {(char *)"mtop", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_mtop, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_mtop, (char *)0, 0},
  {(char *)"scl", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_scl, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_scl, (char *)0, 0},
  {(char *)"val", __pyx_getprop_8pysndlib_10generators_22AdjustableSawtoothWave_val, __pyx_setprop_8pysndlib_10generators_22AdjustableSawtoothWave_val, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_AdjustableSawtoothWave_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_AdjustableSawtoothWave},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_AdjustableSawtoothWave},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_AdjustableSawtoothWave},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_AdjustableSawtoothWave},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_AdjustableSawtoothWave},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_AdjustableSawtoothWave},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_AdjustableSawtoothWave_spec = {
  "pysndlib.generators.AdjustableSawtoothWave",
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_AdjustableSawtoothWave_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_AdjustableSawtoothWave = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""AdjustableSawtoothWave", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_22AdjustableSawtoothWave_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_AdjustableSawtoothWave, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_AdjustableOscil __pyx_vtable_8pysndlib_10generators_AdjustableOscil;

static PyObject *__pyx_tp_new_8pysndlib_10generators_AdjustableOscil(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_AdjustableOscil;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_AdjustableOscil(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_AdjustableOscil) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_AdjustableOscil(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_AdjustableOscil)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_AdjustableOscil(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *p = (struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_AdjustableOscil);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_scaler(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_scaler(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_10mus_scaler_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_duty_factor(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_duty_factor(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_11duty_factor_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3gen_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_top(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_top(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3top_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mtop(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mtop(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_4mtop_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_scl(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_scl(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3scl_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_15AdjustableOscil_val(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_val(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_15AdjustableOscil_3val_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_AdjustableOscil[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_AdjustableOscil[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_phase, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_frequency, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_frequency, (char *)0, 0},
  {(char *)"mus_scaler", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mus_scaler, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mus_scaler, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_frequency, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_frequency, (char *)0, 0},
  {(char *)"duty_factor", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_duty_factor, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_duty_factor, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_amplitude, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_amplitude, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_gen, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_gen, (char *)0, 0},
  {(char *)"top", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_top, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_top, (char *)0, 0},
  {(char *)"mtop", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_mtop, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_mtop, (char *)0, 0},
  {(char *)"scl", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_scl, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_scl, (char *)0, 0},
  {(char *)"val", __pyx_getprop_8pysndlib_10generators_15AdjustableOscil_val, __pyx_setprop_8pysndlib_10generators_15AdjustableOscil_val, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_AdjustableOscil_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_AdjustableOscil},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_AdjustableOscil},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_AdjustableOscil},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_AdjustableOscil},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_AdjustableOscil},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_15AdjustableOscil_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_AdjustableOscil},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_AdjustableOscil_spec = {
  "pysndlib.generators.AdjustableOscil",
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_AdjustableOscil_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_AdjustableOscil = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""AdjustableOscil", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_AdjustableOscil), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_AdjustableOscil, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_15AdjustableOscil_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_AdjustableOscil, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_AdjustableOscil, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_AdjustableOscil, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_AdjustableOscil, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_15AdjustableOscil_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_AdjustableOscil, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_RoundInterp __pyx_vtable_8pysndlib_10generators_RoundInterp;

static PyObject *__pyx_tp_new_8pysndlib_10generators_RoundInterp(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_RoundInterp *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_RoundInterp;
  p->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  p->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_RoundInterp(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *p = (struct __pyx_obj_8pysndlib_10generators_RoundInterp *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_RoundInterp) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->rnd);
  Py_CLEAR(p->flt);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_RoundInterp(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *p = (struct __pyx_obj_8pysndlib_10generators_RoundInterp *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_RoundInterp)); if (e) return e;
  if (p->rnd) {
    e = (*v)(((PyObject *)p->rnd), a); if (e) return e;
  }
  if (p->flt) {
    e = (*v)(((PyObject *)p->flt), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_RoundInterp(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_RoundInterp *p = (struct __pyx_obj_8pysndlib_10generators_RoundInterp *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_RoundInterp);
  tmp = ((PyObject*)p->rnd);
  p->rnd = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->flt);
  p->flt = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_mus_phase(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_mus_phase(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_9mus_phase_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_rnd(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_rnd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_3rnd_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11RoundInterp_flt(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11RoundInterp_flt(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_11RoundInterp_3flt_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_RoundInterp[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11RoundInterp_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11RoundInterp_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_RoundInterp[] = {
  {(char *)"mus_phase", __pyx_getprop_8pysndlib_10generators_11RoundInterp_mus_phase, __pyx_setprop_8pysndlib_10generators_11RoundInterp_mus_phase, (char *)0, 0},
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_11RoundInterp_mus_frequency, __pyx_setprop_8pysndlib_10generators_11RoundInterp_mus_frequency, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_11RoundInterp_frequency, __pyx_setprop_8pysndlib_10generators_11RoundInterp_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_11RoundInterp_n, __pyx_setprop_8pysndlib_10generators_11RoundInterp_n, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_11RoundInterp_amplitude, __pyx_setprop_8pysndlib_10generators_11RoundInterp_amplitude, (char *)0, 0},
  {(char *)"rnd", __pyx_getprop_8pysndlib_10generators_11RoundInterp_rnd, __pyx_setprop_8pysndlib_10generators_11RoundInterp_rnd, (char *)0, 0},
  {(char *)"flt", __pyx_getprop_8pysndlib_10generators_11RoundInterp_flt, __pyx_setprop_8pysndlib_10generators_11RoundInterp_flt, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_RoundInterp_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_RoundInterp},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_11RoundInterp_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_RoundInterp},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_RoundInterp},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_RoundInterp},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_RoundInterp},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_11RoundInterp_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_RoundInterp},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_RoundInterp_spec = {
  "pysndlib.generators.RoundInterp",
  sizeof(struct __pyx_obj_8pysndlib_10generators_RoundInterp),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_RoundInterp_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_RoundInterp = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""RoundInterp", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_RoundInterp), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_RoundInterp, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_11RoundInterp_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_RoundInterp, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_RoundInterp, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_RoundInterp, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_RoundInterp, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_11RoundInterp_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_RoundInterp, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Nchoosekcos __pyx_vtable_8pysndlib_10generators_Nchoosekcos;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Nchoosekcos(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Nchoosekcos;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11Nchoosekcos_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11Nchoosekcos_ratio(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_ratio(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5ratio_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11Nchoosekcos_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_11Nchoosekcos_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Nchoosekcos[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Nchoosekcos[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_11Nchoosekcos_frequency, __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_frequency, (char *)0, 0},
  {(char *)"ratio", __pyx_getprop_8pysndlib_10generators_11Nchoosekcos_ratio, __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_ratio, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_11Nchoosekcos_n, __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_11Nchoosekcos_angle, __pyx_setprop_8pysndlib_10generators_11Nchoosekcos_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Nchoosekcos_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Nchoosekcos},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Nchoosekcos},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_11Nchoosekcos_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Nchoosekcos},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Nchoosekcos_spec = {
  "pysndlib.generators.Nchoosekcos",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Nchoosekcos_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Nchoosekcos = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Nchoosekcos", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Nchoosekcos), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_11Nchoosekcos_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Nchoosekcos, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Nchoosekcos, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_11Nchoosekcos_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Nchoosekcos, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_SincTrain __pyx_vtable_8pysndlib_10generators_SincTrain;

static PyObject *__pyx_tp_new_8pysndlib_10generators_SincTrain(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_SincTrain *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_SincTrain *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_SincTrain;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_mus_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_mus_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_13mus_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_mus_order(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_mus_order(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_9mus_order_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_original_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_original_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_10original_n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9SincTrain_original_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9SincTrain_original_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9SincTrain_18original_frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_SincTrain[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9SincTrain_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9SincTrain_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_SincTrain[] = {
  {(char *)"mus_frequency", __pyx_getprop_8pysndlib_10generators_9SincTrain_mus_frequency, __pyx_setprop_8pysndlib_10generators_9SincTrain_mus_frequency, (char *)0, 0},
  {(char *)"mus_order", __pyx_getprop_8pysndlib_10generators_9SincTrain_mus_order, __pyx_setprop_8pysndlib_10generators_9SincTrain_mus_order, (char *)0, 0},
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_9SincTrain_frequency, __pyx_setprop_8pysndlib_10generators_9SincTrain_frequency, (char *)0, 0},
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_9SincTrain_n, __pyx_setprop_8pysndlib_10generators_9SincTrain_n, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_9SincTrain_angle, __pyx_setprop_8pysndlib_10generators_9SincTrain_angle, (char *)0, 0},
  {(char *)"original_n", __pyx_getprop_8pysndlib_10generators_9SincTrain_original_n, __pyx_setprop_8pysndlib_10generators_9SincTrain_original_n, (char *)0, 0},
  {(char *)"original_frequency", __pyx_getprop_8pysndlib_10generators_9SincTrain_original_frequency, __pyx_setprop_8pysndlib_10generators_9SincTrain_original_frequency, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_SincTrain_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9SincTrain_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_SincTrain},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_SincTrain},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9SincTrain_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_SincTrain},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_SincTrain_spec = {
  "pysndlib.generators.SincTrain",
  sizeof(struct __pyx_obj_8pysndlib_10generators_SincTrain),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_SincTrain_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_SincTrain = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""SincTrain", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_SincTrain), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9SincTrain_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_SincTrain, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_SincTrain, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9SincTrain_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_SincTrain, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_PinkNoise __pyx_vtable_8pysndlib_10generators_PinkNoise;

static PyObject *__pyx_tp_new_8pysndlib_10generators_PinkNoise(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_PinkNoise *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_PinkNoise;
  p->data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_PinkNoise(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *p = (struct __pyx_obj_8pysndlib_10generators_PinkNoise *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_PinkNoise) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->data);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_PinkNoise(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *p = (struct __pyx_obj_8pysndlib_10generators_PinkNoise *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_PinkNoise)); if (e) return e;
  if (p->data) {
    e = (*v)(((PyObject *)p->data), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_PinkNoise(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_PinkNoise *p = (struct __pyx_obj_8pysndlib_10generators_PinkNoise *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_PinkNoise);
  tmp = ((PyObject*)p->data);
  p->data = ((PyArrayObject *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9PinkNoise_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9PinkNoise_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9PinkNoise_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9PinkNoise_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9PinkNoise_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9PinkNoise_data(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_9PinkNoise_4data_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_PinkNoise[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9PinkNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9PinkNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_PinkNoise[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_9PinkNoise_n, __pyx_setprop_8pysndlib_10generators_9PinkNoise_n, (char *)0, 0},
  {(char *)"data", __pyx_getprop_8pysndlib_10generators_9PinkNoise_data, __pyx_setprop_8pysndlib_10generators_9PinkNoise_data, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_PinkNoise_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_PinkNoise},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9PinkNoise_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_PinkNoise},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_PinkNoise},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_PinkNoise},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_PinkNoise},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9PinkNoise_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_PinkNoise},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_PinkNoise_spec = {
  "pysndlib.generators.PinkNoise",
  sizeof(struct __pyx_obj_8pysndlib_10generators_PinkNoise),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_PinkNoise_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_PinkNoise = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""PinkNoise", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_PinkNoise), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_PinkNoise, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9PinkNoise_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_PinkNoise, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_PinkNoise, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_PinkNoise, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_PinkNoise, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9PinkNoise_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_PinkNoise, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_BrownNoise __pyx_vtable_8pysndlib_10generators_BrownNoise;

static PyObject *__pyx_tp_new_8pysndlib_10generators_BrownNoise(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_BrownNoise *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_BrownNoise;
  p->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_BrownNoise(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *p = (struct __pyx_obj_8pysndlib_10generators_BrownNoise *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_BrownNoise) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gr);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_BrownNoise(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *p = (struct __pyx_obj_8pysndlib_10generators_BrownNoise *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_BrownNoise)); if (e) return e;
  if (p->gr) {
    e = (*v)(((PyObject *)p->gr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_BrownNoise(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_BrownNoise *p = (struct __pyx_obj_8pysndlib_10generators_BrownNoise *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_BrownNoise);
  tmp = ((PyObject*)p->gr);
  p->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10BrownNoise_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10BrownNoise_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10BrownNoise_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10BrownNoise_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10BrownNoise_prev(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10BrownNoise_prev(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_4prev_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10BrownNoise_sum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10BrownNoise_sum(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_3sum_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10BrownNoise_gr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10BrownNoise_gr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_10BrownNoise_2gr_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_BrownNoise[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10BrownNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10BrownNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_BrownNoise[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_10BrownNoise_frequency, __pyx_setprop_8pysndlib_10generators_10BrownNoise_frequency, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_10BrownNoise_amplitude, __pyx_setprop_8pysndlib_10generators_10BrownNoise_amplitude, (char *)0, 0},
  {(char *)"prev", __pyx_getprop_8pysndlib_10generators_10BrownNoise_prev, __pyx_setprop_8pysndlib_10generators_10BrownNoise_prev, (char *)0, 0},
  {(char *)"sum", __pyx_getprop_8pysndlib_10generators_10BrownNoise_sum, __pyx_setprop_8pysndlib_10generators_10BrownNoise_sum, (char *)0, 0},
  {(char *)"gr", __pyx_getprop_8pysndlib_10generators_10BrownNoise_gr, __pyx_setprop_8pysndlib_10generators_10BrownNoise_gr, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_BrownNoise_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_BrownNoise},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_10BrownNoise_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_BrownNoise},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_BrownNoise},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_BrownNoise},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_BrownNoise},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_10BrownNoise_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_BrownNoise},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_BrownNoise_spec = {
  "pysndlib.generators.BrownNoise",
  sizeof(struct __pyx_obj_8pysndlib_10generators_BrownNoise),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_BrownNoise_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_BrownNoise = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""BrownNoise", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_BrownNoise), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_BrownNoise, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_10BrownNoise_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_BrownNoise, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_BrownNoise, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_BrownNoise, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_BrownNoise, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_10BrownNoise_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_BrownNoise, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoise __pyx_vtable_8pysndlib_10generators_GreenNoise;

static PyObject *__pyx_tp_new_8pysndlib_10generators_GreenNoise(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_GreenNoise *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_GreenNoise;
  p->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_GreenNoise(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *p = (struct __pyx_obj_8pysndlib_10generators_GreenNoise *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_GreenNoise) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gr);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_GreenNoise(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *p = (struct __pyx_obj_8pysndlib_10generators_GreenNoise *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_GreenNoise)); if (e) return e;
  if (p->gr) {
    e = (*v)(((PyObject *)p->gr), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_GreenNoise(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_GreenNoise *p = (struct __pyx_obj_8pysndlib_10generators_GreenNoise *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_GreenNoise);
  tmp = ((PyObject*)p->gr);
  p->gr = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_prev(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_prev(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_4prev_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_sum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_sum(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_3sum_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_gr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_gr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_2gr_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_low(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_3low_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_low(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_3low_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_10GreenNoise_high(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_10GreenNoise_4high_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_10GreenNoise_high(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_10GreenNoise_4high_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_GreenNoise[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10GreenNoise_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_10GreenNoise_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_GreenNoise[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_10GreenNoise_frequency, __pyx_setprop_8pysndlib_10generators_10GreenNoise_frequency, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_10GreenNoise_amplitude, __pyx_setprop_8pysndlib_10generators_10GreenNoise_amplitude, (char *)0, 0},
  {(char *)"prev", __pyx_getprop_8pysndlib_10generators_10GreenNoise_prev, __pyx_setprop_8pysndlib_10generators_10GreenNoise_prev, (char *)0, 0},
  {(char *)"sum", __pyx_getprop_8pysndlib_10generators_10GreenNoise_sum, __pyx_setprop_8pysndlib_10generators_10GreenNoise_sum, (char *)0, 0},
  {(char *)"gr", __pyx_getprop_8pysndlib_10generators_10GreenNoise_gr, __pyx_setprop_8pysndlib_10generators_10GreenNoise_gr, (char *)0, 0},
  {(char *)"low", __pyx_getprop_8pysndlib_10generators_10GreenNoise_low, __pyx_setprop_8pysndlib_10generators_10GreenNoise_low, (char *)0, 0},
  {(char *)"high", __pyx_getprop_8pysndlib_10generators_10GreenNoise_high, __pyx_setprop_8pysndlib_10generators_10GreenNoise_high, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_GreenNoise_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_GreenNoise},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_10GreenNoise_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_GreenNoise},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_GreenNoise},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_GreenNoise},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_GreenNoise},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_10GreenNoise_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_GreenNoise},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_GreenNoise_spec = {
  "pysndlib.generators.GreenNoise",
  sizeof(struct __pyx_obj_8pysndlib_10generators_GreenNoise),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_GreenNoise_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_GreenNoise = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""GreenNoise", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_GreenNoise), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_GreenNoise, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_10GreenNoise_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_GreenNoise, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_GreenNoise, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_GreenNoise, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_GreenNoise, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_10GreenNoise_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_GreenNoise, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_GreenNoiseInterp __pyx_vtable_8pysndlib_10generators_GreenNoiseInterp;

static PyObject *__pyx_tp_new_8pysndlib_10generators_GreenNoiseInterp(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_GreenNoiseInterp;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_amplitude(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_amplitude(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9amplitude_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_sum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_sum(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3sum_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_low(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_low(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_3low_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_high(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_high(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4high_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_dv(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_dv(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_2dv_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_incr(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_incr(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_4incr_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_angle(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_angle(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5angle_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_GreenNoiseInterp[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_GreenNoiseInterp[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_frequency, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_frequency, (char *)0, 0},
  {(char *)"amplitude", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_amplitude, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_amplitude, (char *)0, 0},
  {(char *)"sum", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_sum, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_sum, (char *)0, 0},
  {(char *)"low", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_low, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_low, (char *)0, 0},
  {(char *)"high", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_high, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_high, (char *)0, 0},
  {(char *)"dv", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_dv, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_dv, (char *)0, 0},
  {(char *)"incr", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_incr, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_incr, (char *)0, 0},
  {(char *)"angle", __pyx_getprop_8pysndlib_10generators_16GreenNoiseInterp_angle, __pyx_setprop_8pysndlib_10generators_16GreenNoiseInterp_angle, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_GreenNoiseInterp_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_GreenNoiseInterp},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_GreenNoiseInterp},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_GreenNoiseInterp},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_GreenNoiseInterp_spec = {
  "pysndlib.generators.GreenNoiseInterp",
  sizeof(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_GreenNoiseInterp_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_GreenNoiseInterp = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""GreenNoiseInterp", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_GreenNoiseInterp), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_GreenNoiseInterp, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_GreenNoiseInterp, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_16GreenNoiseInterp_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_GreenNoiseInterp, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingSum __pyx_vtable_8pysndlib_10generators_MovingSum;

static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingSum(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_MovingSum *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_MovingSum *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_MovingSum;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_MovingSum(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_MovingSum *p = (struct __pyx_obj_8pysndlib_10generators_MovingSum *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_MovingSum) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_MovingSum(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_MovingSum *p = (struct __pyx_obj_8pysndlib_10generators_MovingSum *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_MovingSum)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_MovingSum(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_MovingSum *p = (struct __pyx_obj_8pysndlib_10generators_MovingSum *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_MovingSum);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingSum_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingSum_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9MovingSum_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9MovingSum_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingSum_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9MovingSum_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_9MovingSum_3gen_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_MovingSum[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingSum_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingSum_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_MovingSum[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_9MovingSum_n, __pyx_setprop_8pysndlib_10generators_9MovingSum_n, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_9MovingSum_gen, __pyx_setprop_8pysndlib_10generators_9MovingSum_gen, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_MovingSum_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_MovingSum},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9MovingSum_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_MovingSum},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_MovingSum},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_MovingSum},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_MovingSum},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9MovingSum_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_MovingSum},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_MovingSum_spec = {
  "pysndlib.generators.MovingSum",
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingSum),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_MovingSum_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_MovingSum = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""MovingSum", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingSum), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_MovingSum, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9MovingSum_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_MovingSum, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_MovingSum, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_MovingSum, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_MovingSum, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9MovingSum_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_MovingSum, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingVariance __pyx_vtable_8pysndlib_10generators_MovingVariance;

static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingVariance(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_MovingVariance *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_MovingVariance;
  p->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  p->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_MovingVariance(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *p = (struct __pyx_obj_8pysndlib_10generators_MovingVariance *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_MovingVariance) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen1);
  Py_CLEAR(p->gen2);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_MovingVariance(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *p = (struct __pyx_obj_8pysndlib_10generators_MovingVariance *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_MovingVariance)); if (e) return e;
  if (p->gen1) {
    e = (*v)(((PyObject *)p->gen1), a); if (e) return e;
  }
  if (p->gen2) {
    e = (*v)(((PyObject *)p->gen2), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_MovingVariance(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_MovingVariance *p = (struct __pyx_obj_8pysndlib_10generators_MovingVariance *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_MovingVariance);
  tmp = ((PyObject*)p->gen1);
  p->gen1 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->gen2);
  p->gen2 = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_14MovingVariance_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_14MovingVariance_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_14MovingVariance_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_14MovingVariance_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_14MovingVariance_gen1(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_14MovingVariance_gen1(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen1_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_14MovingVariance_gen2(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_14MovingVariance_gen2(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_14MovingVariance_4gen2_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_MovingVariance[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14MovingVariance_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_14MovingVariance_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_MovingVariance[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_14MovingVariance_n, __pyx_setprop_8pysndlib_10generators_14MovingVariance_n, (char *)0, 0},
  {(char *)"gen1", __pyx_getprop_8pysndlib_10generators_14MovingVariance_gen1, __pyx_setprop_8pysndlib_10generators_14MovingVariance_gen1, (char *)0, 0},
  {(char *)"gen2", __pyx_getprop_8pysndlib_10generators_14MovingVariance_gen2, __pyx_setprop_8pysndlib_10generators_14MovingVariance_gen2, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_MovingVariance_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_MovingVariance},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_14MovingVariance_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_MovingVariance},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_MovingVariance},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_MovingVariance},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_MovingVariance},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_14MovingVariance_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_MovingVariance},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_MovingVariance_spec = {
  "pysndlib.generators.MovingVariance",
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingVariance),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_MovingVariance_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_MovingVariance = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""MovingVariance", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingVariance), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_MovingVariance, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_14MovingVariance_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_MovingVariance, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_MovingVariance, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_MovingVariance, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_MovingVariance, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_14MovingVariance_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_MovingVariance, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingRMS __pyx_vtable_8pysndlib_10generators_MovingRMS;

static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingRMS(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_MovingRMS *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_MovingRMS;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_MovingRMS(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *p = (struct __pyx_obj_8pysndlib_10generators_MovingRMS *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_MovingRMS) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_MovingRMS(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *p = (struct __pyx_obj_8pysndlib_10generators_MovingRMS *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_MovingRMS)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_MovingRMS(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_MovingRMS *p = (struct __pyx_obj_8pysndlib_10generators_MovingRMS *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_MovingRMS);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingRMS_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingRMS_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9MovingRMS_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9MovingRMS_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingRMS_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_9MovingRMS_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_9MovingRMS_3gen_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_MovingRMS[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingRMS_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingRMS_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_MovingRMS[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_9MovingRMS_n, __pyx_setprop_8pysndlib_10generators_9MovingRMS_n, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_9MovingRMS_gen, __pyx_setprop_8pysndlib_10generators_9MovingRMS_gen, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_MovingRMS_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_MovingRMS},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9MovingRMS_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_MovingRMS},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_MovingRMS},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_MovingRMS},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_MovingRMS},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9MovingRMS_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_MovingRMS},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_MovingRMS_spec = {
  "pysndlib.generators.MovingRMS",
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingRMS),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_MovingRMS_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_MovingRMS = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""MovingRMS", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingRMS), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_MovingRMS, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9MovingRMS_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_MovingRMS, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_MovingRMS, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_MovingRMS, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_MovingRMS, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9MovingRMS_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_MovingRMS, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingLength __pyx_vtable_8pysndlib_10generators_MovingLength;

static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingLength(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_MovingLength *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_MovingRMS(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_MovingLength *)o);
  p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_MovingLength;
  return o;
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_MovingLength[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12MovingLength_3__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_12MovingLength_5__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_MovingLength_slots[] = {
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_MovingRMS},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_MovingRMS},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_MovingLength},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_12MovingLength_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_MovingLength},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_MovingLength_spec = {
  "pysndlib.generators.MovingLength",
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingLength),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_MovingLength_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_MovingLength = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""MovingLength", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingLength), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_MovingRMS, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  #if CYTHON_COMPILING_IN_PYPY || 0
  __pyx_pw_8pysndlib_10generators_9MovingRMS_5__call__, /*tp_call*/
  #else
  0, /*tp_call*/
  #endif
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_MovingRMS, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_MovingRMS, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_MovingLength, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_12MovingLength_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_MovingLength, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_WeightedMovingAverage __pyx_vtable_8pysndlib_10generators_WeightedMovingAverage;

static PyObject *__pyx_tp_new_8pysndlib_10generators_WeightedMovingAverage(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_WeightedMovingAverage;
  p->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_WeightedMovingAverage(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_WeightedMovingAverage) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->dly);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_WeightedMovingAverage(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_WeightedMovingAverage)); if (e) return e;
  if (p->dly) {
    e = (*v)(((PyObject *)p->dly), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_WeightedMovingAverage(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_WeightedMovingAverage);
  tmp = ((PyObject*)p->dly);
  p->dly = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_dly(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_dly(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3dly_5__del__(o);
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_num(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_num(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3num_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_sum(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_sum(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3sum_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_y(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_y(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1y_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_den(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_den(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_3den_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_WeightedMovingAverage[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_WeightedMovingAverage[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_n, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_n, (char *)0, 0},
  {(char *)"dly", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_dly, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_dly, (char *)0, 0},
  {(char *)"num", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_num, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_num, (char *)0, 0},
  {(char *)"sum", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_sum, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_sum, (char *)0, 0},
  {(char *)"y", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_y, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_y, (char *)0, 0},
  {(char *)"den", __pyx_getprop_8pysndlib_10generators_21WeightedMovingAverage_den, __pyx_setprop_8pysndlib_10generators_21WeightedMovingAverage_den, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_WeightedMovingAverage_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_WeightedMovingAverage},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_WeightedMovingAverage},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_WeightedMovingAverage},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_WeightedMovingAverage},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_WeightedMovingAverage},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_WeightedMovingAverage},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_WeightedMovingAverage_spec = {
  "pysndlib.generators.WeightedMovingAverage",
  sizeof(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_WeightedMovingAverage_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_WeightedMovingAverage = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""WeightedMovingAverage", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_WeightedMovingAverage, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_WeightedMovingAverage, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_WeightedMovingAverage, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_WeightedMovingAverage, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_WeightedMovingAverage, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_21WeightedMovingAverage_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_WeightedMovingAverage, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_ExponentiallyWeightedMovingAverage __pyx_vtable_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;

static PyObject *__pyx_tp_new_8pysndlib_10generators_ExponentiallyWeightedMovingAverage(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_ExponentiallyWeightedMovingAverage(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->gen);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_ExponentiallyWeightedMovingAverage(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_ExponentiallyWeightedMovingAverage)); if (e) return e;
  if (p->gen) {
    e = (*v)(((PyObject *)p->gen), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_ExponentiallyWeightedMovingAverage(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *p = (struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);
  tmp = ((PyObject*)p->gen);
  p->gen = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_n(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_n(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1n_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_gen(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_gen(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3gen_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_ExponentiallyWeightedMovingAverage[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_ExponentiallyWeightedMovingAverage[] = {
  {(char *)"n", __pyx_getprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_n, __pyx_setprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_n, (char *)0, 0},
  {(char *)"gen", __pyx_getprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_gen, __pyx_setprop_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_gen, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_ExponentiallyWeightedMovingAverage},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage_spec = {
  "pysndlib.generators.ExponentiallyWeightedMovingAverage",
  sizeof(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""ExponentiallyWeightedMovingAverage", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Tanhsin __pyx_vtable_8pysndlib_10generators_Tanhsin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Tanhsin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Tanhsin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Tanhsin;
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators_Tanhsin(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *p = (struct __pyx_obj_8pysndlib_10generators_Tanhsin *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators_Tanhsin) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->osc);
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator(o);
}

static int __pyx_tp_traverse_8pysndlib_10generators_Tanhsin(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *p = (struct __pyx_obj_8pysndlib_10generators_Tanhsin *)o;
  e = ((likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) ? ((__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse) ? __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_8pysndlib_10generators_Tanhsin)); if (e) return e;
  if (p->osc) {
    e = (*v)(((PyObject *)p->osc), a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators_Tanhsin(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators_Tanhsin *p = (struct __pyx_obj_8pysndlib_10generators_Tanhsin *)o;
  if (likely(__pyx_ptype_8pysndlib_10generators_CLMGenerator)) { if (__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear) __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_8pysndlib_10generators_Tanhsin);
  tmp = ((PyObject*)p->osc);
  p->osc = ((struct __pyx_obj_8pysndlib_3clm_mus_any *)Py_None); Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Tanhsin_frequency(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Tanhsin_frequency(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Tanhsin_9frequency_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Tanhsin_r(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Tanhsin_1r_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Tanhsin_r(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Tanhsin_1r_3__set__(o, v);
  }
  else {
    PyErr_SetString(PyExc_NotImplementedError, "__del__");
    return -1;
  }
}

static PyObject *__pyx_getprop_8pysndlib_10generators_7Tanhsin_osc(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_1__get__(o);
}

static int __pyx_setprop_8pysndlib_10generators_7Tanhsin_osc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
  if (v) {
    return __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_3__set__(o, v);
  }
  else {
    return __pyx_pw_8pysndlib_10generators_7Tanhsin_3osc_5__del__(o);
  }
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Tanhsin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Tanhsin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Tanhsin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_Tanhsin[] = {
  {(char *)"frequency", __pyx_getprop_8pysndlib_10generators_7Tanhsin_frequency, __pyx_setprop_8pysndlib_10generators_7Tanhsin_frequency, (char *)0, 0},
  {(char *)"r", __pyx_getprop_8pysndlib_10generators_7Tanhsin_r, __pyx_setprop_8pysndlib_10generators_7Tanhsin_r, (char *)0, 0},
  {(char *)"osc", __pyx_getprop_8pysndlib_10generators_7Tanhsin_osc, __pyx_setprop_8pysndlib_10generators_7Tanhsin_osc, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Tanhsin_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators_Tanhsin},
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Tanhsin_5__call__},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators_Tanhsin},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators_Tanhsin},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Tanhsin},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_Tanhsin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Tanhsin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Tanhsin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Tanhsin_spec = {
  "pysndlib.generators.Tanhsin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Tanhsin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
  __pyx_type_8pysndlib_10generators_Tanhsin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Tanhsin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Tanhsin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Tanhsin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_Tanhsin, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Tanhsin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators_Tanhsin, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators_Tanhsin, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Tanhsin, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_Tanhsin, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Tanhsin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Tanhsin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_Noddsin __pyx_vtable_8pysndlib_10generators_Noddsin;

static PyObject *__pyx_tp_new_8pysndlib_10generators_Noddsin(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_Noddsin *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_Noddsin *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_Noddsin;
  return o;
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_Noddsin[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddsin_7__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_7Noddsin_9__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_Noddsin_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_7Noddsin_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_Noddsin},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_7Noddsin_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_Noddsin},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_Noddsin_spec = {
  "pysndlib.generators.Noddsin",
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddsin),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_Noddsin_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_Noddsin = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""Noddsin", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_Noddsin), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_7Noddsin_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_Noddsin, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_7Noddsin_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_Noddsin, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif
static struct __pyx_vtabstruct_8pysndlib_10generators_MovingFFT __pyx_vtable_8pysndlib_10generators_MovingFFT;

static PyObject *__pyx_tp_new_8pysndlib_10generators_MovingFFT(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_8pysndlib_10generators_MovingFFT *p;
  PyObject *o = __pyx_tp_new_8pysndlib_10generators_CLMGenerator(t, a, k);
  if (unlikely(!o)) return 0;
  p = ((struct __pyx_obj_8pysndlib_10generators_MovingFFT *)o);
  p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pysndlib_10generators_CLMGenerator*)__pyx_vtabptr_8pysndlib_10generators_MovingFFT;
  return o;
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_data(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingFFT_8mus_data_1__get__(o);
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_xcoeffs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_xcoeffs_1__get__(o);
}

static PyObject *__pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_ycoeffs(PyObject *o, CYTHON_UNUSED void *x) {
  return __pyx_pw_8pysndlib_10generators_9MovingFFT_11mus_ycoeffs_1__get__(o);
}

static PyMethodDef __pyx_methods_8pysndlib_10generators_MovingFFT[] = {
  {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_9__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_8pysndlib_10generators_9MovingFFT_11__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static struct PyGetSetDef __pyx_getsets_8pysndlib_10generators_MovingFFT[] = {
  {(char *)"mus_data", __pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_data, 0, (char *)0, 0},
  {(char *)"mus_xcoeffs", __pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_xcoeffs, 0, (char *)0, 0},
  {(char *)"mus_ycoeffs", __pyx_getprop_8pysndlib_10generators_9MovingFFT_mus_ycoeffs, 0, (char *)0, 0},
  {0, 0, 0, 0, 0}
};
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators_MovingFFT_slots[] = {
  {Py_tp_call, (void *)__pyx_pw_8pysndlib_10generators_9MovingFFT_5__call__},
  {Py_tp_methods, (void *)__pyx_methods_8pysndlib_10generators_MovingFFT},
  {Py_tp_getset, (void *)__pyx_getsets_8pysndlib_10generators_MovingFFT},
  {Py_tp_init, (void *)__pyx_pw_8pysndlib_10generators_9MovingFFT_1__init__},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators_MovingFFT},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators_MovingFFT_spec = {
  "pysndlib.generators.MovingFFT",
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingFFT),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE,
  __pyx_type_8pysndlib_10generators_MovingFFT_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators_MovingFFT = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""MovingFFT", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators_MovingFFT), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators_CLMGenerator, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  __pyx_pw_8pysndlib_10generators_9MovingFFT_5__call__, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_8pysndlib_10generators_MovingFFT, /*tp_methods*/
  0, /*tp_members*/
  __pyx_getsets_8pysndlib_10generators_MovingFFT, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  __pyx_pw_8pysndlib_10generators_9MovingFFT_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators_MovingFFT, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *__pyx_freelist_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max[8];
static int __pyx_freecount_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max = 0;

static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max)))) {
    o = (PyObject*)__pyx_freelist_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max[--__pyx_freecount_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max];
    memset(o, 0, sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_find_mid_max);
  Py_CLEAR(p->__pyx_v_find_nodds_mid_max);
  Py_CLEAR(p->__pyx_v_ns);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max)))) {
    __pyx_freelist_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max[__pyx_freecount_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max++] = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)o;
  if (p->__pyx_v_find_mid_max) {
    e = (*v)(p->__pyx_v_find_mid_max, a); if (e) return e;
  }
  if (p->__pyx_v_find_nodds_mid_max) {
    e = (*v)(p->__pyx_v_find_nodds_mid_max, a); if (e) return e;
  }
  if (p->__pyx_v_ns) {
    e = (*v)(p->__pyx_v_ns, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max *)o;
  tmp = ((PyObject*)p->__pyx_v_find_mid_max);
  p->__pyx_v_find_mid_max = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_find_nodds_mid_max);
  p->__pyx_v_find_nodds_mid_max = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_ns);
  p->__pyx_v_ns = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max_spec = {
  "pysndlib.generators.__pyx_scope_struct__find_nxysin_max",
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""__pyx_scope_struct__find_nxysin_max", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max[8];
static int __pyx_freecount_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max = 0;

static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max)))) {
    o = (PyObject*)__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max[--__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max];
    memset(o, 0, sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_find_mid_max);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max)))) {
    __pyx_freelist_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max[__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max++] = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)o;
  if (p->__pyx_v_find_mid_max) {
    e = (*v)(p->__pyx_v_find_mid_max, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max *)o;
  tmp = ((PyObject*)p->__pyx_v_find_mid_max);
  p->__pyx_v_find_mid_max = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max_spec = {
  "pysndlib.generators.__pyx_scope_struct_1_find_noddsin_max",
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""__pyx_scope_struct_1_find_noddsin_max", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max[8];
static int __pyx_freecount_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max = 0;

static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max)))) {
    o = (PyObject*)__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max[--__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max];
    memset(o, 0, sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_find_mid_max);
  Py_CLEAR(p->__pyx_v_ns);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max)))) {
    __pyx_freelist_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max[__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max++] = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)o;
  if (p->__pyx_v_find_mid_max) {
    e = (*v)(p->__pyx_v_find_mid_max, a); if (e) return e;
  }
  if (p->__pyx_v_ns) {
    e = (*v)(p->__pyx_v_ns, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max *)o;
  tmp = ((PyObject*)p->__pyx_v_find_mid_max);
  p->__pyx_v_find_mid_max = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_ns);
  p->__pyx_v_ns = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max_spec = {
  "pysndlib.generators.__pyx_scope_struct_2_find_nsin5_max",
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""__pyx_scope_struct_2_find_nsin5_max", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env[8];
static int __pyx_freecount_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env = 0;

static PyObject *__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env)))) {
    o = (PyObject*)__pyx_freelist_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env[--__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env];
    memset(o, 0, sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env));
    (void) PyObject_INIT(o, t);
    PyObject_GC_Track(o);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(PyObject *o) {
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)o;
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  PyObject_GC_UnTrack(o);
  Py_CLEAR(p->__pyx_v_e);
  Py_CLEAR(p->__pyx_v_expts);
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env)))) {
    __pyx_freelist_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env[__pyx_freecount_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env++] = ((struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}

static int __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)o;
  if (p->__pyx_v_e) {
    e = (*v)(p->__pyx_v_e, a); if (e) return e;
  }
  if (p->__pyx_v_expts) {
    e = (*v)(p->__pyx_v_expts, a); if (e) return e;
  }
  return 0;
}

static int __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env(PyObject *o) {
  PyObject* tmp;
  struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *p = (struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env *)o;
  tmp = ((PyObject*)p->__pyx_v_e);
  p->__pyx_v_e = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  tmp = ((PyObject*)p->__pyx_v_expts);
  p->__pyx_v_expts = Py_None; Py_INCREF(Py_None);
  Py_XDECREF(tmp);
  return 0;
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env},
  {Py_tp_traverse, (void *)__pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env},
  {Py_tp_clear, (void *)__pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env},
  {Py_tp_new, (void *)__pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env},
  {0, 0},
};
static PyType_Spec __pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env_spec = {
  "pysndlib.generators.__pyx_scope_struct_3_multi_expt_env",
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env_slots,
};
#else

static PyTypeObject __pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""__pyx_scope_struct_3_multi_expt_env", /*tp_name*/
  sizeof(struct __pyx_obj_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env, /*tp_traverse*/
  __pyx_tp_clear_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *__pyx_freelist___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y[8];
static int __pyx_freecount___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y = 0;

static PyObject *__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  #if CYTHON_COMPILING_IN_LIMITED_API
  allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
  o = alloc_func(t, 0);
  #else
  #if CYTHON_COMPILING_IN_CPYTHON
  if (likely((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y > 0) & (int)(t->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y)))) {
    o = (PyObject*)__pyx_freelist___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y[--__pyx_freecount___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y];
    memset(o, 0, sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y));
    (void) PyObject_INIT(o, t);
  } else
  #endif
  {
    o = (*t->tp_alloc)(t, 0);
    if (unlikely(!o)) return 0;
  }
  #endif
  return o;
}

static void __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(PyObject *o) {
  #if CYTHON_USE_TP_FINALIZE
  if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
    if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y) {
      if (PyObject_CallFinalizerFromDealloc(o)) return;
    }
  }
  #endif
  #if CYTHON_COMPILING_IN_CPYTHON
  if (((int)(__pyx_freecount___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y < 8) & (int)(Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y)))) {
    __pyx_freelist___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y[__pyx_freecount___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y++] = ((struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y *)o);
  } else
  #endif
  {
    #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
    (*Py_TYPE(o)->tp_free)(o);
    #else
    {
      freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
      if (tp_free) tp_free(o);
    }
    #endif
  }
}
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_slots[] = {
  {Py_tp_dealloc, (void *)__pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y},
  {Py_tp_new, (void *)__pyx_tp_new___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y},
  {0, 0},
};
static PyType_Spec __pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_spec = {
  "pysndlib.generators.__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y",
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y),
  0,
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE,
  __pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_slots,
};
#else

static PyTypeObject __pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y = {
  PyVarObject_HEAD_INIT(0, 0)
  "pysndlib.generators.""__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y", /*tp_name*/
  sizeof(struct __pyx_obj___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y, /*tp_dealloc*/
  #if PY_VERSION_HEX < 0x030800b4
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030800b4
  0, /*tp_vectorcall_offset*/
  #endif
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #endif
  #if PY_MAJOR_VERSION >= 3
  0, /*tp_as_async*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_FINALIZE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  0, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  #if !CYTHON_USE_TYPE_SPECS
  0, /*tp_dictoffset*/
  #endif
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  #if CYTHON_USE_TP_FINALIZE
  0, /*tp_finalize*/
  #else
  NULL, /*tp_finalize*/
  #endif
  #endif
  #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
  0, /*tp_vectorcall*/
  #endif
  #if __PYX_NEED_TP_PRINT_SLOT == 1
  0, /*tp_print*/
  #endif
  #if PY_VERSION_HEX >= 0x030C0000
  0, /*tp_watched*/
  #endif
  #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
  0, /*tp_pypy_flags*/
  #endif
};
#endif

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};
#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
/* #### Code section: pystring_table ### */

static int __Pyx_CreateStringTabAndInitStrings(void) {
  __Pyx_StringTabEntry __pyx_string_tab[] = {
    {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
    {&__pyx_n_s_Abcos, __pyx_k_Abcos, sizeof(__pyx_k_Abcos), 0, 0, 1, 1},
    {&__pyx_n_s_Abcos___reduce_cython, __pyx_k_Abcos___reduce_cython, sizeof(__pyx_k_Abcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Abcos___setstate_cython, __pyx_k_Abcos___setstate_cython, sizeof(__pyx_k_Abcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Abcos_next, __pyx_k_Abcos_next, sizeof(__pyx_k_Abcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Absin, __pyx_k_Absin, sizeof(__pyx_k_Absin), 0, 0, 1, 1},
    {&__pyx_n_s_Absin___reduce_cython, __pyx_k_Absin___reduce_cython, sizeof(__pyx_k_Absin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Absin___setstate_cython, __pyx_k_Absin___setstate_cython, sizeof(__pyx_k_Absin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Absin_next, __pyx_k_Absin_next, sizeof(__pyx_k_Absin_next), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableOscil, __pyx_k_AdjustableOscil, sizeof(__pyx_k_AdjustableOscil), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableOscil___reduce_cython, __pyx_k_AdjustableOscil___reduce_cython, sizeof(__pyx_k_AdjustableOscil___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableOscil___setstate_cytho, __pyx_k_AdjustableOscil___setstate_cytho, sizeof(__pyx_k_AdjustableOscil___setstate_cytho), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableOscil_next, __pyx_k_AdjustableOscil_next, sizeof(__pyx_k_AdjustableOscil_next), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSawtoothWave, __pyx_k_AdjustableSawtoothWave, sizeof(__pyx_k_AdjustableSawtoothWave), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSawtoothWave___reduce, __pyx_k_AdjustableSawtoothWave___reduce, sizeof(__pyx_k_AdjustableSawtoothWave___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSawtoothWave___setstat, __pyx_k_AdjustableSawtoothWave___setstat, sizeof(__pyx_k_AdjustableSawtoothWave___setstat), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSawtoothWave_next, __pyx_k_AdjustableSawtoothWave_next, sizeof(__pyx_k_AdjustableSawtoothWave_next), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSquareWave, __pyx_k_AdjustableSquareWave, sizeof(__pyx_k_AdjustableSquareWave), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSquareWave___reduce_cy, __pyx_k_AdjustableSquareWave___reduce_cy, sizeof(__pyx_k_AdjustableSquareWave___reduce_cy), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSquareWave___setstate, __pyx_k_AdjustableSquareWave___setstate, sizeof(__pyx_k_AdjustableSquareWave___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableSquareWave_next, __pyx_k_AdjustableSquareWave_next, sizeof(__pyx_k_AdjustableSquareWave_next), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableTriangleWave, __pyx_k_AdjustableTriangleWave, sizeof(__pyx_k_AdjustableTriangleWave), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableTriangleWave___reduce, __pyx_k_AdjustableTriangleWave___reduce, sizeof(__pyx_k_AdjustableTriangleWave___reduce), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableTriangleWave___setstat, __pyx_k_AdjustableTriangleWave___setstat, sizeof(__pyx_k_AdjustableTriangleWave___setstat), 0, 0, 1, 1},
    {&__pyx_n_s_AdjustableTriangleWave_next, __pyx_k_AdjustableTriangleWave_next, sizeof(__pyx_k_AdjustableTriangleWave_next), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm, __pyx_k_Asyfm, sizeof(__pyx_k_Asyfm), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm___reduce_cython, __pyx_k_Asyfm___reduce_cython, sizeof(__pyx_k_Asyfm___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm___setstate_cython, __pyx_k_Asyfm___setstate_cython, sizeof(__pyx_k_Asyfm___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm_next, __pyx_k_Asyfm_next, sizeof(__pyx_k_Asyfm_next), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm_next_i, __pyx_k_Asyfm_next_i, sizeof(__pyx_k_Asyfm_next_i), 0, 0, 1, 1},
    {&__pyx_n_s_Asyfm_next_j, __pyx_k_Asyfm_next_j, sizeof(__pyx_k_Asyfm_next_j), 0, 0, 1, 1},
    {&__pyx_n_s_BOTH_KINDS, __pyx_k_BOTH_KINDS, sizeof(__pyx_k_BOTH_KINDS), 0, 0, 1, 1},
    {&__pyx_n_s_Bess, __pyx_k_Bess, sizeof(__pyx_k_Bess), 0, 0, 1, 1},
    {&__pyx_n_s_Bess___reduce_cython, __pyx_k_Bess___reduce_cython, sizeof(__pyx_k_Bess___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Bess___setstate_cython, __pyx_k_Bess___setstate_cython, sizeof(__pyx_k_Bess___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Bess_next, __pyx_k_Bess_next, sizeof(__pyx_k_Bess_next), 0, 0, 1, 1},
    {&__pyx_n_s_Blackman, __pyx_k_Blackman, sizeof(__pyx_k_Blackman), 0, 0, 1, 1},
    {&__pyx_n_s_Blackman___reduce_cython, __pyx_k_Blackman___reduce_cython, sizeof(__pyx_k_Blackman___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Blackman___setstate_cython, __pyx_k_Blackman___setstate_cython, sizeof(__pyx_k_Blackman___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Blackman_mus_reset, __pyx_k_Blackman_mus_reset, sizeof(__pyx_k_Blackman_mus_reset), 0, 0, 1, 1},
    {&__pyx_n_s_Blackman_next, __pyx_k_Blackman_next, sizeof(__pyx_k_Blackman_next), 0, 0, 1, 1},
    {&__pyx_n_s_Blsaw, __pyx_k_Blsaw, sizeof(__pyx_k_Blsaw), 0, 0, 1, 1},
    {&__pyx_n_s_Blsaw___reduce_cython, __pyx_k_Blsaw___reduce_cython, sizeof(__pyx_k_Blsaw___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Blsaw___setstate_cython, __pyx_k_Blsaw___setstate_cython, sizeof(__pyx_k_Blsaw___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Blsaw_next, __pyx_k_Blsaw_next, sizeof(__pyx_k_Blsaw_next), 0, 0, 1, 1},
    {&__pyx_n_s_BrownNoise, __pyx_k_BrownNoise, sizeof(__pyx_k_BrownNoise), 0, 0, 1, 1},
    {&__pyx_n_s_BrownNoise___reduce_cython, __pyx_k_BrownNoise___reduce_cython, sizeof(__pyx_k_BrownNoise___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_BrownNoise___setstate_cython, __pyx_k_BrownNoise___setstate_cython, sizeof(__pyx_k_BrownNoise___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_BrownNoise_next, __pyx_k_BrownNoise_next, sizeof(__pyx_k_BrownNoise_next), 0, 0, 1, 1},
    {&__pyx_n_s_CLMGenerator, __pyx_k_CLMGenerator, sizeof(__pyx_k_CLMGenerator), 0, 0, 1, 1},
    {&__pyx_n_s_CLMGenerator___reduce_cython, __pyx_k_CLMGenerator___reduce_cython, sizeof(__pyx_k_CLMGenerator___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CLMGenerator___setstate_cython, __pyx_k_CLMGenerator___setstate_cython, sizeof(__pyx_k_CLMGenerator___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_CLMGenerator_next, __pyx_k_CLMGenerator_next, sizeof(__pyx_k_CLMGenerator_next), 0, 0, 1, 1},
    {&__pyx_n_s_Dblsum, __pyx_k_Dblsum, sizeof(__pyx_k_Dblsum), 0, 0, 1, 1},
    {&__pyx_n_s_Dblsum___reduce_cython, __pyx_k_Dblsum___reduce_cython, sizeof(__pyx_k_Dblsum___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Dblsum___setstate_cython, __pyx_k_Dblsum___setstate_cython, sizeof(__pyx_k_Dblsum___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Dblsum_next, __pyx_k_Dblsum_next, sizeof(__pyx_k_Dblsum_next), 0, 0, 1, 1},
    {&__pyx_n_s_EITHER_KIND, __pyx_k_EITHER_KIND, sizeof(__pyx_k_EITHER_KIND), 0, 0, 1, 1},
    {&__pyx_n_s_Eoddcos, __pyx_k_Eoddcos, sizeof(__pyx_k_Eoddcos), 0, 0, 1, 1},
    {&__pyx_n_s_Eoddcos___reduce_cython, __pyx_k_Eoddcos___reduce_cython, sizeof(__pyx_k_Eoddcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Eoddcos___setstate_cython, __pyx_k_Eoddcos___setstate_cython, sizeof(__pyx_k_Eoddcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Eoddcos_next, __pyx_k_Eoddcos_next, sizeof(__pyx_k_Eoddcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Ercos, __pyx_k_Ercos, sizeof(__pyx_k_Ercos), 0, 0, 1, 1},
    {&__pyx_n_s_Ercos___reduce_cython, __pyx_k_Ercos___reduce_cython, sizeof(__pyx_k_Ercos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ercos___setstate_cython, __pyx_k_Ercos___setstate_cython, sizeof(__pyx_k_Ercos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ercos_next, __pyx_k_Ercos_next, sizeof(__pyx_k_Ercos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Erssb, __pyx_k_Erssb, sizeof(__pyx_k_Erssb), 0, 0, 1, 1},
    {&__pyx_n_s_Erssb___reduce_cython, __pyx_k_Erssb___reduce_cython, sizeof(__pyx_k_Erssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Erssb___setstate_cython, __pyx_k_Erssb___setstate_cython, sizeof(__pyx_k_Erssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Erssb_next, __pyx_k_Erssb_next, sizeof(__pyx_k_Erssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_ExponentiallyWeightedMovingAvera, __pyx_k_ExponentiallyWeightedMovingAvera, sizeof(__pyx_k_ExponentiallyWeightedMovingAvera), 0, 0, 1, 1},
    {&__pyx_n_s_ExponentiallyWeightedMovingAvera_2, __pyx_k_ExponentiallyWeightedMovingAvera_2, sizeof(__pyx_k_ExponentiallyWeightedMovingAvera_2), 0, 0, 1, 1},
    {&__pyx_n_s_ExponentiallyWeightedMovingAvera_3, __pyx_k_ExponentiallyWeightedMovingAvera_3, sizeof(__pyx_k_ExponentiallyWeightedMovingAvera_3), 0, 0, 1, 1},
    {&__pyx_n_s_ExponentiallyWeightedMovingAvera_4, __pyx_k_ExponentiallyWeightedMovingAvera_4, sizeof(__pyx_k_ExponentiallyWeightedMovingAvera_4), 0, 0, 1, 1},
    {&__pyx_n_s_FIRST_KIND, __pyx_k_FIRST_KIND, sizeof(__pyx_k_FIRST_KIND), 0, 0, 1, 1},
    {&__pyx_n_s_Fmssb, __pyx_k_Fmssb, sizeof(__pyx_k_Fmssb), 0, 0, 1, 1},
    {&__pyx_n_s_Fmssb___reduce_cython, __pyx_k_Fmssb___reduce_cython, sizeof(__pyx_k_Fmssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Fmssb___setstate_cython, __pyx_k_Fmssb___setstate_cython, sizeof(__pyx_k_Fmssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Fmssb_next, __pyx_k_Fmssb_next, sizeof(__pyx_k_Fmssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoise, __pyx_k_GreenNoise, sizeof(__pyx_k_GreenNoise), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoiseInterp, __pyx_k_GreenNoiseInterp, sizeof(__pyx_k_GreenNoiseInterp), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoiseInterp___reduce_cython, __pyx_k_GreenNoiseInterp___reduce_cython, sizeof(__pyx_k_GreenNoiseInterp___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoiseInterp___setstate_cyth, __pyx_k_GreenNoiseInterp___setstate_cyth, sizeof(__pyx_k_GreenNoiseInterp___setstate_cyth), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoiseInterp_next, __pyx_k_GreenNoiseInterp_next, sizeof(__pyx_k_GreenNoiseInterp_next), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoise___reduce_cython, __pyx_k_GreenNoise___reduce_cython, sizeof(__pyx_k_GreenNoise___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoise___setstate_cython, __pyx_k_GreenNoise___setstate_cython, sizeof(__pyx_k_GreenNoise___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_GreenNoise_next, __pyx_k_GreenNoise_next, sizeof(__pyx_k_GreenNoise_next), 0, 0, 1, 1},
    {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_10, __pyx_k_Incompatible_checksums_0x_x_vs_0_10, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_10), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_11, __pyx_k_Incompatible_checksums_0x_x_vs_0_11, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_11), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_12, __pyx_k_Incompatible_checksums_0x_x_vs_0_12, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_12), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_13, __pyx_k_Incompatible_checksums_0x_x_vs_0_13, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_13), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_14, __pyx_k_Incompatible_checksums_0x_x_vs_0_14, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_14), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_15, __pyx_k_Incompatible_checksums_0x_x_vs_0_15, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_15), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_16, __pyx_k_Incompatible_checksums_0x_x_vs_0_16, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_16), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_17, __pyx_k_Incompatible_checksums_0x_x_vs_0_17, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_17), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_18, __pyx_k_Incompatible_checksums_0x_x_vs_0_18, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_18), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_19, __pyx_k_Incompatible_checksums_0x_x_vs_0_19, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_19), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_2, __pyx_k_Incompatible_checksums_0x_x_vs_0_2, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_2), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_20, __pyx_k_Incompatible_checksums_0x_x_vs_0_20, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_20), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_21, __pyx_k_Incompatible_checksums_0x_x_vs_0_21, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_21), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_22, __pyx_k_Incompatible_checksums_0x_x_vs_0_22, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_22), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_23, __pyx_k_Incompatible_checksums_0x_x_vs_0_23, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_23), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_24, __pyx_k_Incompatible_checksums_0x_x_vs_0_24, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_24), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_25, __pyx_k_Incompatible_checksums_0x_x_vs_0_25, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_25), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_26, __pyx_k_Incompatible_checksums_0x_x_vs_0_26, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_26), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_27, __pyx_k_Incompatible_checksums_0x_x_vs_0_27, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_27), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_28, __pyx_k_Incompatible_checksums_0x_x_vs_0_28, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_28), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_29, __pyx_k_Incompatible_checksums_0x_x_vs_0_29, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_29), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_3, __pyx_k_Incompatible_checksums_0x_x_vs_0_3, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_3), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_30, __pyx_k_Incompatible_checksums_0x_x_vs_0_30, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_30), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_31, __pyx_k_Incompatible_checksums_0x_x_vs_0_31, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_31), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_32, __pyx_k_Incompatible_checksums_0x_x_vs_0_32, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_32), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_33, __pyx_k_Incompatible_checksums_0x_x_vs_0_33, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_33), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_34, __pyx_k_Incompatible_checksums_0x_x_vs_0_34, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_34), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_35, __pyx_k_Incompatible_checksums_0x_x_vs_0_35, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_35), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_36, __pyx_k_Incompatible_checksums_0x_x_vs_0_36, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_36), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_37, __pyx_k_Incompatible_checksums_0x_x_vs_0_37, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_37), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_38, __pyx_k_Incompatible_checksums_0x_x_vs_0_38, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_38), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_39, __pyx_k_Incompatible_checksums_0x_x_vs_0_39, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_39), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_4, __pyx_k_Incompatible_checksums_0x_x_vs_0_4, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_4), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_40, __pyx_k_Incompatible_checksums_0x_x_vs_0_40, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_40), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_41, __pyx_k_Incompatible_checksums_0x_x_vs_0_41, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_41), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_42, __pyx_k_Incompatible_checksums_0x_x_vs_0_42, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_42), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_43, __pyx_k_Incompatible_checksums_0x_x_vs_0_43, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_43), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_44, __pyx_k_Incompatible_checksums_0x_x_vs_0_44, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_44), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_45, __pyx_k_Incompatible_checksums_0x_x_vs_0_45, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_45), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_46, __pyx_k_Incompatible_checksums_0x_x_vs_0_46, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_46), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_47, __pyx_k_Incompatible_checksums_0x_x_vs_0_47, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_47), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_48, __pyx_k_Incompatible_checksums_0x_x_vs_0_48, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_48), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_49, __pyx_k_Incompatible_checksums_0x_x_vs_0_49, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_49), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_5, __pyx_k_Incompatible_checksums_0x_x_vs_0_5, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_5), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_6, __pyx_k_Incompatible_checksums_0x_x_vs_0_6, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_6), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_7, __pyx_k_Incompatible_checksums_0x_x_vs_0_7, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_7), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_8, __pyx_k_Incompatible_checksums_0x_x_vs_0_8, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_8), 0, 0, 1, 0},
    {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0_9, __pyx_k_Incompatible_checksums_0x_x_vs_0_9, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0_9), 0, 0, 1, 0},
    {&__pyx_n_s_Izcos, __pyx_k_Izcos, sizeof(__pyx_k_Izcos), 0, 0, 1, 1},
    {&__pyx_n_s_Izcos___reduce_cython, __pyx_k_Izcos___reduce_cython, sizeof(__pyx_k_Izcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Izcos___setstate_cython, __pyx_k_Izcos___setstate_cython, sizeof(__pyx_k_Izcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Izcos_mus_reset, __pyx_k_Izcos_mus_reset, sizeof(__pyx_k_Izcos_mus_reset), 0, 0, 1, 1},
    {&__pyx_n_s_Izcos_next, __pyx_k_Izcos_next, sizeof(__pyx_k_Izcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_J0evencos, __pyx_k_J0evencos, sizeof(__pyx_k_J0evencos), 0, 0, 1, 1},
    {&__pyx_n_s_J0evencos___reduce_cython, __pyx_k_J0evencos___reduce_cython, sizeof(__pyx_k_J0evencos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J0evencos___setstate_cython, __pyx_k_J0evencos___setstate_cython, sizeof(__pyx_k_J0evencos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J0evencos_next, __pyx_k_J0evencos_next, sizeof(__pyx_k_J0evencos_next), 0, 0, 1, 1},
    {&__pyx_n_s_J0j1cos, __pyx_k_J0j1cos, sizeof(__pyx_k_J0j1cos), 0, 0, 1, 1},
    {&__pyx_n_s_J0j1cos___reduce_cython, __pyx_k_J0j1cos___reduce_cython, sizeof(__pyx_k_J0j1cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J0j1cos___setstate_cython, __pyx_k_J0j1cos___setstate_cython, sizeof(__pyx_k_J0j1cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J0j1cos_next, __pyx_k_J0j1cos_next, sizeof(__pyx_k_J0j1cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_J2cos, __pyx_k_J2cos, sizeof(__pyx_k_J2cos), 0, 0, 1, 1},
    {&__pyx_n_s_J2cos___reduce_cython, __pyx_k_J2cos___reduce_cython, sizeof(__pyx_k_J2cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J2cos___setstate_cython, __pyx_k_J2cos___setstate_cython, sizeof(__pyx_k_J2cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_J2cos_next, __pyx_k_J2cos_next, sizeof(__pyx_k_J2cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Jcos, __pyx_k_Jcos, sizeof(__pyx_k_Jcos), 0, 0, 1, 1},
    {&__pyx_n_s_Jcos___reduce_cython, __pyx_k_Jcos___reduce_cython, sizeof(__pyx_k_Jcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jcos___setstate_cython, __pyx_k_Jcos___setstate_cython, sizeof(__pyx_k_Jcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jcos_next, __pyx_k_Jcos_next, sizeof(__pyx_k_Jcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Jjcos, __pyx_k_Jjcos, sizeof(__pyx_k_Jjcos), 0, 0, 1, 1},
    {&__pyx_n_s_Jjcos___reduce_cython, __pyx_k_Jjcos___reduce_cython, sizeof(__pyx_k_Jjcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jjcos___setstate_cython, __pyx_k_Jjcos___setstate_cython, sizeof(__pyx_k_Jjcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jjcos_next, __pyx_k_Jjcos_next, sizeof(__pyx_k_Jjcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Jncos, __pyx_k_Jncos, sizeof(__pyx_k_Jncos), 0, 0, 1, 1},
    {&__pyx_n_s_Jncos___reduce_cython, __pyx_k_Jncos___reduce_cython, sizeof(__pyx_k_Jncos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jncos___setstate_cython, __pyx_k_Jncos___setstate_cython, sizeof(__pyx_k_Jncos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jncos_next, __pyx_k_Jncos_next, sizeof(__pyx_k_Jncos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Jpcos, __pyx_k_Jpcos, sizeof(__pyx_k_Jpcos), 0, 0, 1, 1},
    {&__pyx_n_s_Jpcos___reduce_cython, __pyx_k_Jpcos___reduce_cython, sizeof(__pyx_k_Jpcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jpcos___setstate_cython, __pyx_k_Jpcos___setstate_cython, sizeof(__pyx_k_Jpcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jpcos_next, __pyx_k_Jpcos_next, sizeof(__pyx_k_Jpcos_next), 0, 0, 1, 1},
    {&__pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va, __pyx_k_Jpcos_r_and_a_can_t_have_same_va, sizeof(__pyx_k_Jpcos_r_and_a_can_t_have_same_va), 0, 1, 0, 0},
    {&__pyx_n_s_Jycos, __pyx_k_Jycos, sizeof(__pyx_k_Jycos), 0, 0, 1, 1},
    {&__pyx_n_s_Jycos___reduce_cython, __pyx_k_Jycos___reduce_cython, sizeof(__pyx_k_Jycos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jycos___setstate_cython, __pyx_k_Jycos___setstate_cython, sizeof(__pyx_k_Jycos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Jycos_next, __pyx_k_Jycos_next, sizeof(__pyx_k_Jycos_next), 0, 0, 1, 1},
    {&__pyx_n_s_K2cos, __pyx_k_K2cos, sizeof(__pyx_k_K2cos), 0, 0, 1, 1},
    {&__pyx_n_s_K2cos___reduce_cython, __pyx_k_K2cos___reduce_cython, sizeof(__pyx_k_K2cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2cos___setstate_cython, __pyx_k_K2cos___setstate_cython, sizeof(__pyx_k_K2cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2cos_next, __pyx_k_K2cos_next, sizeof(__pyx_k_K2cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_K2sin, __pyx_k_K2sin, sizeof(__pyx_k_K2sin), 0, 0, 1, 1},
    {&__pyx_n_s_K2sin___reduce_cython, __pyx_k_K2sin___reduce_cython, sizeof(__pyx_k_K2sin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2sin___setstate_cython, __pyx_k_K2sin___setstate_cython, sizeof(__pyx_k_K2sin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2sin_next, __pyx_k_K2sin_next, sizeof(__pyx_k_K2sin_next), 0, 0, 1, 1},
    {&__pyx_n_s_K2ssb, __pyx_k_K2ssb, sizeof(__pyx_k_K2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_K2ssb___reduce_cython, __pyx_k_K2ssb___reduce_cython, sizeof(__pyx_k_K2ssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2ssb___setstate_cython, __pyx_k_K2ssb___setstate_cython, sizeof(__pyx_k_K2ssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K2ssb_next, __pyx_k_K2ssb_next, sizeof(__pyx_k_K2ssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_K3sin, __pyx_k_K3sin, sizeof(__pyx_k_K3sin), 0, 0, 1, 1},
    {&__pyx_n_s_K3sin___reduce_cython, __pyx_k_K3sin___reduce_cython, sizeof(__pyx_k_K3sin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K3sin___setstate_cython, __pyx_k_K3sin___setstate_cython, sizeof(__pyx_k_K3sin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_K3sin_mus_reset, __pyx_k_K3sin_mus_reset, sizeof(__pyx_k_K3sin_mus_reset), 0, 0, 1, 1},
    {&__pyx_n_s_K3sin_next, __pyx_k_K3sin_next, sizeof(__pyx_k_K3sin_next), 0, 0, 1, 1},
    {&__pyx_n_s_Krksin, __pyx_k_Krksin, sizeof(__pyx_k_Krksin), 0, 0, 1, 1},
    {&__pyx_n_s_Krksin___reduce_cython, __pyx_k_Krksin___reduce_cython, sizeof(__pyx_k_Krksin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Krksin___setstate_cython, __pyx_k_Krksin___setstate_cython, sizeof(__pyx_k_Krksin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Krksin_next, __pyx_k_Krksin_next, sizeof(__pyx_k_Krksin_next), 0, 0, 1, 1},
    {&__pyx_n_s_MovingFFT, __pyx_k_MovingFFT, sizeof(__pyx_k_MovingFFT), 0, 0, 1, 1},
    {&__pyx_n_s_MovingFFT___reduce_cython, __pyx_k_MovingFFT___reduce_cython, sizeof(__pyx_k_MovingFFT___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingFFT___setstate_cython, __pyx_k_MovingFFT___setstate_cython, sizeof(__pyx_k_MovingFFT___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingFFT_mus_run, __pyx_k_MovingFFT_mus_run, sizeof(__pyx_k_MovingFFT_mus_run), 0, 0, 1, 1},
    {&__pyx_n_s_MovingFFT_next, __pyx_k_MovingFFT_next, sizeof(__pyx_k_MovingFFT_next), 0, 0, 1, 1},
    {&__pyx_n_s_MovingLength, __pyx_k_MovingLength, sizeof(__pyx_k_MovingLength), 0, 0, 1, 1},
    {&__pyx_n_s_MovingLength___reduce_cython, __pyx_k_MovingLength___reduce_cython, sizeof(__pyx_k_MovingLength___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingLength___setstate_cython, __pyx_k_MovingLength___setstate_cython, sizeof(__pyx_k_MovingLength___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingRMS, __pyx_k_MovingRMS, sizeof(__pyx_k_MovingRMS), 0, 0, 1, 1},
    {&__pyx_n_s_MovingRMS___reduce_cython, __pyx_k_MovingRMS___reduce_cython, sizeof(__pyx_k_MovingRMS___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingRMS___setstate_cython, __pyx_k_MovingRMS___setstate_cython, sizeof(__pyx_k_MovingRMS___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingRMS_next, __pyx_k_MovingRMS_next, sizeof(__pyx_k_MovingRMS_next), 0, 0, 1, 1},
    {&__pyx_n_s_MovingSum, __pyx_k_MovingSum, sizeof(__pyx_k_MovingSum), 0, 0, 1, 1},
    {&__pyx_n_s_MovingSum___reduce_cython, __pyx_k_MovingSum___reduce_cython, sizeof(__pyx_k_MovingSum___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingSum___setstate_cython, __pyx_k_MovingSum___setstate_cython, sizeof(__pyx_k_MovingSum___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingSum_next, __pyx_k_MovingSum_next, sizeof(__pyx_k_MovingSum_next), 0, 0, 1, 1},
    {&__pyx_n_s_MovingVariance, __pyx_k_MovingVariance, sizeof(__pyx_k_MovingVariance), 0, 0, 1, 1},
    {&__pyx_n_s_MovingVariance___reduce_cython, __pyx_k_MovingVariance___reduce_cython, sizeof(__pyx_k_MovingVariance___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingVariance___setstate_cython, __pyx_k_MovingVariance___setstate_cython, sizeof(__pyx_k_MovingVariance___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_MovingVariance_next, __pyx_k_MovingVariance_next, sizeof(__pyx_k_MovingVariance_next), 0, 0, 1, 1},
    {&__pyx_n_s_N1cos, __pyx_k_N1cos, sizeof(__pyx_k_N1cos), 0, 0, 1, 1},
    {&__pyx_n_s_N1cos___reduce_cython, __pyx_k_N1cos___reduce_cython, sizeof(__pyx_k_N1cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_N1cos___setstate_cython, __pyx_k_N1cos___setstate_cython, sizeof(__pyx_k_N1cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_N1cos_next, __pyx_k_N1cos_next, sizeof(__pyx_k_N1cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nchoosekcos, __pyx_k_Nchoosekcos, sizeof(__pyx_k_Nchoosekcos), 0, 0, 1, 1},
    {&__pyx_n_s_Nchoosekcos___reduce_cython, __pyx_k_Nchoosekcos___reduce_cython, sizeof(__pyx_k_Nchoosekcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nchoosekcos___setstate_cython, __pyx_k_Nchoosekcos___setstate_cython, sizeof(__pyx_k_Nchoosekcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nchoosekcos_next, __pyx_k_Nchoosekcos_next, sizeof(__pyx_k_Nchoosekcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos2, __pyx_k_Ncos2, sizeof(__pyx_k_Ncos2), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos2___reduce_cython, __pyx_k_Ncos2___reduce_cython, sizeof(__pyx_k_Ncos2___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos2___setstate_cython, __pyx_k_Ncos2___setstate_cython, sizeof(__pyx_k_Ncos2___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos2_next, __pyx_k_Ncos2_next, sizeof(__pyx_k_Ncos2_next), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos4, __pyx_k_Ncos4, sizeof(__pyx_k_Ncos4), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos4___reduce_cython, __pyx_k_Ncos4___reduce_cython, sizeof(__pyx_k_Ncos4___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos4___setstate_cython, __pyx_k_Ncos4___setstate_cython, sizeof(__pyx_k_Ncos4___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos4_next, __pyx_k_Ncos4_next, sizeof(__pyx_k_Ncos4_next), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos5, __pyx_k_Ncos5, sizeof(__pyx_k_Ncos5), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos5___reduce_cython, __pyx_k_Ncos5___reduce_cython, sizeof(__pyx_k_Ncos5___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos5___setstate_cython, __pyx_k_Ncos5___setstate_cython, sizeof(__pyx_k_Ncos5___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Ncos5_next, __pyx_k_Ncos5_next, sizeof(__pyx_k_Ncos5_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nkssb, __pyx_k_Nkssb, sizeof(__pyx_k_Nkssb), 0, 0, 1, 1},
    {&__pyx_n_s_Nkssb___reduce_cython, __pyx_k_Nkssb___reduce_cython, sizeof(__pyx_k_Nkssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nkssb___setstate_cython, __pyx_k_Nkssb___setstate_cython, sizeof(__pyx_k_Nkssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nkssb_call_interp, __pyx_k_Nkssb_call_interp, sizeof(__pyx_k_Nkssb_call_interp), 0, 0, 1, 1},
    {&__pyx_n_s_Nkssb_next, __pyx_k_Nkssb_next, sizeof(__pyx_k_Nkssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Noddcos, __pyx_k_Noddcos, sizeof(__pyx_k_Noddcos), 0, 0, 1, 1},
    {&__pyx_n_s_Noddcos___reduce_cython, __pyx_k_Noddcos___reduce_cython, sizeof(__pyx_k_Noddcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddcos___setstate_cython, __pyx_k_Noddcos___setstate_cython, sizeof(__pyx_k_Noddcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddcos_next, __pyx_k_Noddcos_next, sizeof(__pyx_k_Noddcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Noddsin, __pyx_k_Noddsin, sizeof(__pyx_k_Noddsin), 0, 0, 1, 1},
    {&__pyx_n_s_Noddsin___reduce_cython, __pyx_k_Noddsin___reduce_cython, sizeof(__pyx_k_Noddsin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddsin___setstate_cython, __pyx_k_Noddsin___setstate_cython, sizeof(__pyx_k_Noddsin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddsin_next, __pyx_k_Noddsin_next, sizeof(__pyx_k_Noddsin_next), 0, 0, 1, 1},
    {&__pyx_n_s_Noddssb, __pyx_k_Noddssb, sizeof(__pyx_k_Noddssb), 0, 0, 1, 1},
    {&__pyx_n_s_Noddssb___reduce_cython, __pyx_k_Noddssb___reduce_cython, sizeof(__pyx_k_Noddssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddssb___setstate_cython, __pyx_k_Noddssb___setstate_cython, sizeof(__pyx_k_Noddssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Noddssb_next, __pyx_k_Noddssb_next, sizeof(__pyx_k_Noddssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Npcos, __pyx_k_Npcos, sizeof(__pyx_k_Npcos), 0, 0, 1, 1},
    {&__pyx_n_s_Npcos___reduce_cython, __pyx_k_Npcos___reduce_cython, sizeof(__pyx_k_Npcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npcos___setstate_cython, __pyx_k_Npcos___setstate_cython, sizeof(__pyx_k_Npcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npcos_next, __pyx_k_Npcos_next, sizeof(__pyx_k_Npcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Npos1cos, __pyx_k_Npos1cos, sizeof(__pyx_k_Npos1cos), 0, 0, 1, 1},
    {&__pyx_n_s_Npos1cos___reduce_cython, __pyx_k_Npos1cos___reduce_cython, sizeof(__pyx_k_Npos1cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npos1cos___setstate_cython, __pyx_k_Npos1cos___setstate_cython, sizeof(__pyx_k_Npos1cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npos1cos_next, __pyx_k_Npos1cos_next, sizeof(__pyx_k_Npos1cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Npos3cos, __pyx_k_Npos3cos, sizeof(__pyx_k_Npos3cos), 0, 0, 1, 1},
    {&__pyx_n_s_Npos3cos___reduce_cython, __pyx_k_Npos3cos___reduce_cython, sizeof(__pyx_k_Npos3cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npos3cos___setstate_cython, __pyx_k_Npos3cos___setstate_cython, sizeof(__pyx_k_Npos3cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Npos3cos_next, __pyx_k_Npos3cos_next, sizeof(__pyx_k_Npos3cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nrcos, __pyx_k_Nrcos, sizeof(__pyx_k_Nrcos), 0, 0, 1, 1},
    {&__pyx_n_s_Nrcos___reduce_cython, __pyx_k_Nrcos___reduce_cython, sizeof(__pyx_k_Nrcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nrcos___setstate_cython, __pyx_k_Nrcos___setstate_cython, sizeof(__pyx_k_Nrcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nrcos_next, __pyx_k_Nrcos_next, sizeof(__pyx_k_Nrcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nrssb, __pyx_k_Nrssb, sizeof(__pyx_k_Nrssb), 0, 0, 1, 1},
    {&__pyx_n_s_Nrssb___reduce_cython, __pyx_k_Nrssb___reduce_cython, sizeof(__pyx_k_Nrssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nrssb___setstate_cython, __pyx_k_Nrssb___setstate_cython, sizeof(__pyx_k_Nrssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nrssb_call_interp, __pyx_k_Nrssb_call_interp, sizeof(__pyx_k_Nrssb_call_interp), 0, 0, 1, 1},
    {&__pyx_n_s_Nrssb_next, __pyx_k_Nrssb_next, sizeof(__pyx_k_Nrssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nsin5, __pyx_k_Nsin5, sizeof(__pyx_k_Nsin5), 0, 0, 1, 1},
    {&__pyx_n_s_Nsin5___reduce_cython, __pyx_k_Nsin5___reduce_cython, sizeof(__pyx_k_Nsin5___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nsin5___setstate_cython, __pyx_k_Nsin5___setstate_cython, sizeof(__pyx_k_Nsin5___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nsin5_next, __pyx_k_Nsin5_next, sizeof(__pyx_k_Nsin5_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nsincos, __pyx_k_Nsincos, sizeof(__pyx_k_Nsincos), 0, 0, 1, 1},
    {&__pyx_n_s_Nsincos___reduce_cython, __pyx_k_Nsincos___reduce_cython, sizeof(__pyx_k_Nsincos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nsincos___setstate_cython, __pyx_k_Nsincos___setstate_cython, sizeof(__pyx_k_Nsincos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nsincos_next, __pyx_k_Nsincos_next, sizeof(__pyx_k_Nsincos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nssb, __pyx_k_Nssb, sizeof(__pyx_k_Nssb), 0, 0, 1, 1},
    {&__pyx_n_s_Nssb___reduce_cython, __pyx_k_Nssb___reduce_cython, sizeof(__pyx_k_Nssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nssb___setstate_cython, __pyx_k_Nssb___setstate_cython, sizeof(__pyx_k_Nssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nssb_next, __pyx_k_Nssb_next, sizeof(__pyx_k_Nssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1cos, __pyx_k_Nxy1cos, sizeof(__pyx_k_Nxy1cos), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1cos___reduce_cython, __pyx_k_Nxy1cos___reduce_cython, sizeof(__pyx_k_Nxy1cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1cos___setstate_cython, __pyx_k_Nxy1cos___setstate_cython, sizeof(__pyx_k_Nxy1cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1cos_next, __pyx_k_Nxy1cos_next, sizeof(__pyx_k_Nxy1cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1sin, __pyx_k_Nxy1sin, sizeof(__pyx_k_Nxy1sin), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1sin___reduce_cython, __pyx_k_Nxy1sin___reduce_cython, sizeof(__pyx_k_Nxy1sin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1sin___setstate_cython, __pyx_k_Nxy1sin___setstate_cython, sizeof(__pyx_k_Nxy1sin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxy1sin_next, __pyx_k_Nxy1sin_next, sizeof(__pyx_k_Nxy1sin_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nxycos, __pyx_k_Nxycos, sizeof(__pyx_k_Nxycos), 0, 0, 1, 1},
    {&__pyx_n_s_Nxycos___reduce_cython, __pyx_k_Nxycos___reduce_cython, sizeof(__pyx_k_Nxycos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxycos___setstate_cython, __pyx_k_Nxycos___setstate_cython, sizeof(__pyx_k_Nxycos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxycos_next, __pyx_k_Nxycos_next, sizeof(__pyx_k_Nxycos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Nxysin, __pyx_k_Nxysin, sizeof(__pyx_k_Nxysin), 0, 0, 1, 1},
    {&__pyx_n_s_Nxysin___reduce_cython, __pyx_k_Nxysin___reduce_cython, sizeof(__pyx_k_Nxysin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxysin___setstate_cython, __pyx_k_Nxysin___setstate_cython, sizeof(__pyx_k_Nxysin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Nxysin_next, __pyx_k_Nxysin_next, sizeof(__pyx_k_Nxysin_next), 0, 0, 1, 1},
    {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
    {&__pyx_n_s_PinkNoise, __pyx_k_PinkNoise, sizeof(__pyx_k_PinkNoise), 0, 0, 1, 1},
    {&__pyx_n_s_PinkNoise___reduce_cython, __pyx_k_PinkNoise___reduce_cython, sizeof(__pyx_k_PinkNoise___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PinkNoise___setstate_cython, __pyx_k_PinkNoise___setstate_cython, sizeof(__pyx_k_PinkNoise___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_PinkNoise_next, __pyx_k_PinkNoise_next, sizeof(__pyx_k_PinkNoise_next), 0, 0, 1, 1},
    {&__pyx_n_s_Polynomial, __pyx_k_Polynomial, sizeof(__pyx_k_Polynomial), 0, 0, 1, 1},
    {&__pyx_n_s_Pyx_CFunc_double__lParenobject, __pyx_k_Pyx_CFunc_double__lParenobject, sizeof(__pyx_k_Pyx_CFunc_double__lParenobject), 0, 0, 1, 1},
    {&__pyx_n_s_R2cos, __pyx_k_R2cos, sizeof(__pyx_k_R2cos), 0, 0, 1, 1},
    {&__pyx_n_s_R2cos___reduce_cython, __pyx_k_R2cos___reduce_cython, sizeof(__pyx_k_R2cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2cos___setstate_cython, __pyx_k_R2cos___setstate_cython, sizeof(__pyx_k_R2cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2cos_next, __pyx_k_R2cos_next, sizeof(__pyx_k_R2cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_R2k2cos, __pyx_k_R2k2cos, sizeof(__pyx_k_R2k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_R2k2cos___reduce_cython, __pyx_k_R2k2cos___reduce_cython, sizeof(__pyx_k_R2k2cos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2k2cos___setstate_cython, __pyx_k_R2k2cos___setstate_cython, sizeof(__pyx_k_R2k2cos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2k2cos_next, __pyx_k_R2k2cos_next, sizeof(__pyx_k_R2k2cos_next), 0, 0, 1, 1},
    {&__pyx_n_s_R2kfcos, __pyx_k_R2kfcos, sizeof(__pyx_k_R2kfcos), 0, 0, 1, 1},
    {&__pyx_n_s_R2kfcos___reduce_cython, __pyx_k_R2kfcos___reduce_cython, sizeof(__pyx_k_R2kfcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2kfcos___setstate_cython, __pyx_k_R2kfcos___setstate_cython, sizeof(__pyx_k_R2kfcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2kfcos_next, __pyx_k_R2kfcos_next, sizeof(__pyx_k_R2kfcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_R2ssb, __pyx_k_R2ssb, sizeof(__pyx_k_R2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_R2ssb___reduce_cython, __pyx_k_R2ssb___reduce_cython, sizeof(__pyx_k_R2ssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2ssb___setstate_cython, __pyx_k_R2ssb___setstate_cython, sizeof(__pyx_k_R2ssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_R2ssb_next, __pyx_k_R2ssb_next, sizeof(__pyx_k_R2ssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rcos, __pyx_k_Rcos, sizeof(__pyx_k_Rcos), 0, 0, 1, 1},
    {&__pyx_n_s_Rcos___reduce_cython, __pyx_k_Rcos___reduce_cython, sizeof(__pyx_k_Rcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rcos___setstate_cython, __pyx_k_Rcos___setstate_cython, sizeof(__pyx_k_Rcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rcos_next, __pyx_k_Rcos_next, sizeof(__pyx_k_Rcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rkcos, __pyx_k_Rkcos, sizeof(__pyx_k_Rkcos), 0, 0, 1, 1},
    {&__pyx_n_s_Rkcos___reduce_cython, __pyx_k_Rkcos___reduce_cython, sizeof(__pyx_k_Rkcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkcos___setstate_cython, __pyx_k_Rkcos___setstate_cython, sizeof(__pyx_k_Rkcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkcos_next, __pyx_k_Rkcos_next, sizeof(__pyx_k_Rkcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfcos, __pyx_k_Rkfcos, sizeof(__pyx_k_Rkfcos), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfcos___reduce_cython, __pyx_k_Rkfcos___reduce_cython, sizeof(__pyx_k_Rkfcos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfcos___setstate_cython, __pyx_k_Rkfcos___setstate_cython, sizeof(__pyx_k_Rkfcos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfcos_next, __pyx_k_Rkfcos_next, sizeof(__pyx_k_Rkfcos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfssb, __pyx_k_Rkfssb, sizeof(__pyx_k_Rkfssb), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfssb___reduce_cython, __pyx_k_Rkfssb___reduce_cython, sizeof(__pyx_k_Rkfssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfssb___setstate_cython, __pyx_k_Rkfssb___setstate_cython, sizeof(__pyx_k_Rkfssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkfssb_next, __pyx_k_Rkfssb_next, sizeof(__pyx_k_Rkfssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rkoddssb, __pyx_k_Rkoddssb, sizeof(__pyx_k_Rkoddssb), 0, 0, 1, 1},
    {&__pyx_n_s_Rkoddssb___reduce_cython, __pyx_k_Rkoddssb___reduce_cython, sizeof(__pyx_k_Rkoddssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkoddssb___setstate_cython, __pyx_k_Rkoddssb___setstate_cython, sizeof(__pyx_k_Rkoddssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkoddssb_next, __pyx_k_Rkoddssb_next, sizeof(__pyx_k_Rkoddssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rksin, __pyx_k_Rksin, sizeof(__pyx_k_Rksin), 0, 0, 1, 1},
    {&__pyx_n_s_Rksin___reduce_cython, __pyx_k_Rksin___reduce_cython, sizeof(__pyx_k_Rksin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rksin___setstate_cython, __pyx_k_Rksin___setstate_cython, sizeof(__pyx_k_Rksin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rksin_next, __pyx_k_Rksin_next, sizeof(__pyx_k_Rksin_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rkssb, __pyx_k_Rkssb, sizeof(__pyx_k_Rkssb), 0, 0, 1, 1},
    {&__pyx_n_s_Rkssb___reduce_cython, __pyx_k_Rkssb___reduce_cython, sizeof(__pyx_k_Rkssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkssb___setstate_cython, __pyx_k_Rkssb___setstate_cython, sizeof(__pyx_k_Rkssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rkssb_next, __pyx_k_Rkssb_next, sizeof(__pyx_k_Rkssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_RoundInterp, __pyx_k_RoundInterp, sizeof(__pyx_k_RoundInterp), 0, 0, 1, 1},
    {&__pyx_n_s_RoundInterp___reduce_cython, __pyx_k_RoundInterp___reduce_cython, sizeof(__pyx_k_RoundInterp___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RoundInterp___setstate_cython, __pyx_k_RoundInterp___setstate_cython, sizeof(__pyx_k_RoundInterp___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_RoundInterp_next, __pyx_k_RoundInterp_next, sizeof(__pyx_k_RoundInterp_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rssb, __pyx_k_Rssb, sizeof(__pyx_k_Rssb), 0, 0, 1, 1},
    {&__pyx_n_s_Rssb___reduce_cython, __pyx_k_Rssb___reduce_cython, sizeof(__pyx_k_Rssb___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rssb___setstate_cython, __pyx_k_Rssb___setstate_cython, sizeof(__pyx_k_Rssb___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rssb_call_interp, __pyx_k_Rssb_call_interp, sizeof(__pyx_k_Rssb_call_interp), 0, 0, 1, 1},
    {&__pyx_n_s_Rssb_next, __pyx_k_Rssb_next, sizeof(__pyx_k_Rssb_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rxycos, __pyx_k_Rxycos, sizeof(__pyx_k_Rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_Rxycos___reduce_cython, __pyx_k_Rxycos___reduce_cython, sizeof(__pyx_k_Rxycos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rxycos___setstate_cython, __pyx_k_Rxycos___setstate_cython, sizeof(__pyx_k_Rxycos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rxycos_next, __pyx_k_Rxycos_next, sizeof(__pyx_k_Rxycos_next), 0, 0, 1, 1},
    {&__pyx_n_s_Rxysin, __pyx_k_Rxysin, sizeof(__pyx_k_Rxysin), 0, 0, 1, 1},
    {&__pyx_n_s_Rxysin___reduce_cython, __pyx_k_Rxysin___reduce_cython, sizeof(__pyx_k_Rxysin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rxysin___setstate_cython, __pyx_k_Rxysin___setstate_cython, sizeof(__pyx_k_Rxysin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Rxysin_next, __pyx_k_Rxysin_next, sizeof(__pyx_k_Rxysin_next), 0, 0, 1, 1},
    {&__pyx_n_s_SECOND_KIND, __pyx_k_SECOND_KIND, sizeof(__pyx_k_SECOND_KIND), 0, 0, 1, 1},
    {&__pyx_n_s_SafeRxycos, __pyx_k_SafeRxycos, sizeof(__pyx_k_SafeRxycos), 0, 0, 1, 1},
    {&__pyx_n_s_SafeRxycos___reduce_cython, __pyx_k_SafeRxycos___reduce_cython, sizeof(__pyx_k_SafeRxycos___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SafeRxycos___setstate_cython, __pyx_k_SafeRxycos___setstate_cython, sizeof(__pyx_k_SafeRxycos___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SafeRxycos_clamp_rxycos_r, __pyx_k_SafeRxycos_clamp_rxycos_r, sizeof(__pyx_k_SafeRxycos_clamp_rxycos_r), 0, 0, 1, 1},
    {&__pyx_n_s_SafeRxycos_next, __pyx_k_SafeRxycos_next, sizeof(__pyx_k_SafeRxycos_next), 0, 0, 1, 1},
    {&__pyx_n_s_SincTrain, __pyx_k_SincTrain, sizeof(__pyx_k_SincTrain), 0, 0, 1, 1},
    {&__pyx_n_s_SincTrain___reduce_cython, __pyx_k_SincTrain___reduce_cython, sizeof(__pyx_k_SincTrain___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SincTrain___setstate_cython, __pyx_k_SincTrain___setstate_cython, sizeof(__pyx_k_SincTrain___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_SincTrain_next, __pyx_k_SincTrain_next, sizeof(__pyx_k_SincTrain_next), 0, 0, 1, 1},
    {&__pyx_n_s_Tanhsin, __pyx_k_Tanhsin, sizeof(__pyx_k_Tanhsin), 0, 0, 1, 1},
    {&__pyx_n_s_Tanhsin___reduce_cython, __pyx_k_Tanhsin___reduce_cython, sizeof(__pyx_k_Tanhsin___reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Tanhsin___setstate_cython, __pyx_k_Tanhsin___setstate_cython, sizeof(__pyx_k_Tanhsin___setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_Tanhsin_next, __pyx_k_Tanhsin_next, sizeof(__pyx_k_Tanhsin_next), 0, 0, 1, 1},
    {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
    {&__pyx_n_s_WeightedMovingAverage, __pyx_k_WeightedMovingAverage, sizeof(__pyx_k_WeightedMovingAverage), 0, 0, 1, 1},
    {&__pyx_n_s_WeightedMovingAverage___reduce_c, __pyx_k_WeightedMovingAverage___reduce_c, sizeof(__pyx_k_WeightedMovingAverage___reduce_c), 0, 0, 1, 1},
    {&__pyx_n_s_WeightedMovingAverage___setstate, __pyx_k_WeightedMovingAverage___setstate, sizeof(__pyx_k_WeightedMovingAverage___setstate), 0, 0, 1, 1},
    {&__pyx_n_s_WeightedMovingAverage_next, __pyx_k_WeightedMovingAverage_next, sizeof(__pyx_k_WeightedMovingAverage_next), 0, 0, 1, 1},
    {&__pyx_n_s__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 0, 1, 1},
    {&__pyx_n_s__935, __pyx_k__935, sizeof(__pyx_k__935), 0, 0, 1, 1},
    {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1},
    {&__pyx_n_s_a2, __pyx_k_a2, sizeof(__pyx_k_a2), 0, 0, 1, 1},
    {&__pyx_kp_u_a_2, __pyx_k_a_2, sizeof(__pyx_k_a_2), 0, 1, 0, 0},
    {&__pyx_n_s_abcos, __pyx_k_abcos, sizeof(__pyx_k_abcos), 0, 0, 1, 1},
    {&__pyx_n_s_absin, __pyx_k_absin, sizeof(__pyx_k_absin), 0, 0, 1, 1},
    {&__pyx_n_s_acos, __pyx_k_acos, sizeof(__pyx_k_acos), 0, 0, 1, 1},
    {&__pyx_n_s_adjustable_oscil, __pyx_k_adjustable_oscil, sizeof(__pyx_k_adjustable_oscil), 0, 0, 1, 1},
    {&__pyx_n_s_adjustable_sawtooth_wave, __pyx_k_adjustable_sawtooth_wave, sizeof(__pyx_k_adjustable_sawtooth_wave), 0, 0, 1, 1},
    {&__pyx_n_s_adjustable_square_wave, __pyx_k_adjustable_square_wave, sizeof(__pyx_k_adjustable_square_wave), 0, 0, 1, 1},
    {&__pyx_n_s_adjustable_triangle_wave, __pyx_k_adjustable_triangle_wave, sizeof(__pyx_k_adjustable_triangle_wave), 0, 0, 1, 1},
    {&__pyx_n_s_amplitude, __pyx_k_amplitude, sizeof(__pyx_k_amplitude), 0, 0, 1, 1},
    {&__pyx_n_s_angle, __pyx_k_angle, sizeof(__pyx_k_angle), 0, 0, 1, 1},
    {&__pyx_n_s_arg1, __pyx_k_arg1, sizeof(__pyx_k_arg1), 0, 0, 1, 1},
    {&__pyx_n_s_arg2, __pyx_k_arg2, sizeof(__pyx_k_arg2), 0, 0, 1, 1},
    {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1},
    {&__pyx_n_s_asyfm, __pyx_k_asyfm, sizeof(__pyx_k_asyfm), 0, 0, 1, 1},
    {&__pyx_n_s_asyfm_i, __pyx_k_asyfm_i, sizeof(__pyx_k_asyfm_i), 0, 0, 1, 1},
    {&__pyx_n_s_asyfm_j, __pyx_k_asyfm_j, sizeof(__pyx_k_asyfm_j), 0, 0, 1, 1},
    {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
    {&__pyx_n_s_atan2, __pyx_k_atan2, sizeof(__pyx_k_atan2), 0, 0, 1, 1},
    {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1},
    {&__pyx_n_s_bes_i0, __pyx_k_bes_i0, sizeof(__pyx_k_bes_i0), 0, 0, 1, 1},
    {&__pyx_n_s_bess, __pyx_k_bess, sizeof(__pyx_k_bess), 0, 0, 1, 1},
    {&__pyx_n_s_bessel_peaks, __pyx_k_bessel_peaks, sizeof(__pyx_k_bessel_peaks), 0, 0, 1, 1},
    {&__pyx_n_s_blackman, __pyx_k_blackman, sizeof(__pyx_k_blackman), 0, 0, 1, 1},
    {&__pyx_n_s_blackman4_env, __pyx_k_blackman4_env, sizeof(__pyx_k_blackman4_env), 0, 0, 1, 1},
    {&__pyx_n_s_blackman_coeffs, __pyx_k_blackman_coeffs, sizeof(__pyx_k_blackman_coeffs), 0, 0, 1, 1},
    {&__pyx_n_s_blsaw, __pyx_k_blsaw, sizeof(__pyx_k_blsaw), 0, 0, 1, 1},
    {&__pyx_n_s_brown_noise, __pyx_k_brown_noise, sizeof(__pyx_k_brown_noise), 0, 0, 1, 1},
    {&__pyx_n_s_call_interp, __pyx_k_call_interp, sizeof(__pyx_k_call_interp), 0, 0, 1, 1},
    {&__pyx_n_s_ceil, __pyx_k_ceil, sizeof(__pyx_k_ceil), 0, 0, 1, 1},
    {&__pyx_n_s_cfunc_to_py, __pyx_k_cfunc_to_py, sizeof(__pyx_k_cfunc_to_py), 0, 0, 1, 1},
    {&__pyx_n_s_channels, __pyx_k_channels, sizeof(__pyx_k_channels), 0, 0, 1, 1},
    {&__pyx_n_s_clamp, __pyx_k_clamp, sizeof(__pyx_k_clamp), 0, 0, 1, 1},
    {&__pyx_n_s_clamp_rxycos_r, __pyx_k_clamp_rxycos_r, sizeof(__pyx_k_clamp_rxycos_r), 0, 0, 1, 1},
    {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1},
    {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
    {&__pyx_n_s_clm, __pyx_k_clm, sizeof(__pyx_k_clm), 0, 0, 1, 1},
    {&__pyx_n_s_copyto, __pyx_k_copyto, sizeof(__pyx_k_copyto), 0, 0, 1, 1},
    {&__pyx_n_s_cos, __pyx_k_cos, sizeof(__pyx_k_cos), 0, 0, 1, 1},
    {&__pyx_n_s_cosh, __pyx_k_cosh, sizeof(__pyx_k_cosh), 0, 0, 1, 1},
    {&__pyx_kp_s_cython_double, __pyx_k_cython_double, sizeof(__pyx_k_cython_double), 0, 0, 1, 0},
    {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1},
    {&__pyx_n_s_dblsum, __pyx_k_dblsum, sizeof(__pyx_k_dblsum), 0, 0, 1, 1},
    {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1},
    {&__pyx_n_s_den, __pyx_k_den, sizeof(__pyx_k_den), 0, 0, 1, 1},
    {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
    {&__pyx_n_s_dict_2, __pyx_k_dict_2, sizeof(__pyx_k_dict_2), 0, 0, 1, 1},
    {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0},
    {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
    {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
    {&__pyx_n_s_duty_factor, __pyx_k_duty_factor, sizeof(__pyx_k_duty_factor), 0, 0, 1, 1},
    {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1},
    {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0},
    {&__pyx_kp_u_enum_class_Polynomial_not_import, __pyx_k_enum_class_Polynomial_not_import, sizeof(__pyx_k_enum_class_Polynomial_not_import), 0, 1, 0, 0},
    {&__pyx_n_s_eoddcos, __pyx_k_eoddcos, sizeof(__pyx_k_eoddcos), 0, 0, 1, 1},
    {&__pyx_n_s_ercos, __pyx_k_ercos, sizeof(__pyx_k_ercos), 0, 0, 1, 1},
    {&__pyx_n_s_erssb, __pyx_k_erssb, sizeof(__pyx_k_erssb), 0, 0, 1, 1},
    {&__pyx_n_s_exp, __pyx_k_exp, sizeof(__pyx_k_exp), 0, 0, 1, 1},
    {&__pyx_n_s_exponentially_weighted_moving_av, __pyx_k_exponentially_weighted_moving_av, sizeof(__pyx_k_exponentially_weighted_moving_av), 0, 0, 1, 1},
    {&__pyx_n_s_expts, __pyx_k_expts, sizeof(__pyx_k_expts), 0, 0, 1, 1},
    {&__pyx_n_s_fabs, __pyx_k_fabs, sizeof(__pyx_k_fabs), 0, 0, 1, 1},
    {&__pyx_n_s_fill, __pyx_k_fill, sizeof(__pyx_k_fill), 0, 0, 1, 1},
    {&__pyx_n_s_find_mid_max, __pyx_k_find_mid_max, sizeof(__pyx_k_find_mid_max), 0, 0, 1, 1},
    {&__pyx_n_s_find_nodds_mid_max, __pyx_k_find_nodds_mid_max, sizeof(__pyx_k_find_nodds_mid_max), 0, 0, 1, 1},
    {&__pyx_n_s_find_noddsin_max, __pyx_k_find_noddsin_max, sizeof(__pyx_k_find_noddsin_max), 0, 0, 1, 1},
    {&__pyx_n_s_find_noddsin_max_locals_find_mid, __pyx_k_find_noddsin_max_locals_find_mid, sizeof(__pyx_k_find_noddsin_max_locals_find_mid), 0, 0, 1, 1},
    {&__pyx_n_s_find_nsin5_max, __pyx_k_find_nsin5_max, sizeof(__pyx_k_find_nsin5_max), 0, 0, 1, 1},
    {&__pyx_n_s_find_nsin5_max_locals_find_mid_m, __pyx_k_find_nsin5_max_locals_find_mid_m, sizeof(__pyx_k_find_nsin5_max_locals_find_mid_m), 0, 0, 1, 1},
    {&__pyx_n_s_find_nsin5_max_locals_ns, __pyx_k_find_nsin5_max_locals_ns, sizeof(__pyx_k_find_nsin5_max_locals_ns), 0, 0, 1, 1},
    {&__pyx_n_s_find_nxysin_max, __pyx_k_find_nxysin_max, sizeof(__pyx_k_find_nxysin_max), 0, 0, 1, 1},
    {&__pyx_n_s_find_nxysin_max_locals_find_mid, __pyx_k_find_nxysin_max_locals_find_mid, sizeof(__pyx_k_find_nxysin_max_locals_find_mid), 0, 0, 1, 1},
    {&__pyx_n_s_find_nxysin_max_locals_find_nodd, __pyx_k_find_nxysin_max_locals_find_nodd, sizeof(__pyx_k_find_nxysin_max_locals_find_nodd), 0, 0, 1, 1},
    {&__pyx_n_s_find_nxysin_max_locals_ns, __pyx_k_find_nxysin_max_locals_ns, sizeof(__pyx_k_find_nxysin_max_locals_ns), 0, 0, 1, 1},
    {&__pyx_n_s_floor, __pyx_k_floor, sizeof(__pyx_k_floor), 0, 0, 1, 1},
    {&__pyx_n_s_fm, __pyx_k_fm, sizeof(__pyx_k_fm), 0, 0, 1, 1},
    {&__pyx_n_s_fmssb, __pyx_k_fmssb, sizeof(__pyx_k_fmssb), 0, 0, 1, 1},
    {&__pyx_n_s_frequency, __pyx_k_frequency, sizeof(__pyx_k_frequency), 0, 0, 1, 1},
    {&__pyx_n_s_fun, __pyx_k_fun, sizeof(__pyx_k_fun), 0, 0, 1, 1},
    {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0},
    {&__pyx_n_s_gen, __pyx_k_gen, sizeof(__pyx_k_gen), 0, 0, 1, 1},
    {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
    {&__pyx_n_s_green_noise, __pyx_k_green_noise, sizeof(__pyx_k_green_noise), 0, 0, 1, 1},
    {&__pyx_n_s_green_noise_interp, __pyx_k_green_noise_interp, sizeof(__pyx_k_green_noise_interp), 0, 0, 1, 1},
    {&__pyx_n_s_hi, __pyx_k_hi, sizeof(__pyx_k_hi), 0, 0, 1, 1},
    {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1},
    {&__pyx_n_s_hop, __pyx_k_hop, sizeof(__pyx_k_hop), 0, 0, 1, 1},
    {&__pyx_n_s_im, __pyx_k_im, sizeof(__pyx_k_im), 0, 0, 1, 1},
    {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
    {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
    {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
    {&__pyx_n_s_initial_phase, __pyx_k_initial_phase, sizeof(__pyx_k_initial_phase), 0, 0, 1, 1},
    {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1},
    {&__pyx_n_s_insig, __pyx_k_insig, sizeof(__pyx_k_insig), 0, 0, 1, 1},
    {&__pyx_n_s_interp, __pyx_k_interp, sizeof(__pyx_k_interp), 0, 0, 1, 1},
    {&__pyx_n_s_is_abcos, __pyx_k_is_abcos, sizeof(__pyx_k_is_abcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_absin, __pyx_k_is_absin, sizeof(__pyx_k_is_absin), 0, 0, 1, 1},
    {&__pyx_n_s_is_adjustable_oscil, __pyx_k_is_adjustable_oscil, sizeof(__pyx_k_is_adjustable_oscil), 0, 0, 1, 1},
    {&__pyx_n_s_is_adjustable_sawtooth_wave, __pyx_k_is_adjustable_sawtooth_wave, sizeof(__pyx_k_is_adjustable_sawtooth_wave), 0, 0, 1, 1},
    {&__pyx_n_s_is_adjustable_square_wave, __pyx_k_is_adjustable_square_wave, sizeof(__pyx_k_is_adjustable_square_wave), 0, 0, 1, 1},
    {&__pyx_n_s_is_adjustable_triangle_wave, __pyx_k_is_adjustable_triangle_wave, sizeof(__pyx_k_is_adjustable_triangle_wave), 0, 0, 1, 1},
    {&__pyx_n_s_is_asyfm, __pyx_k_is_asyfm, sizeof(__pyx_k_is_asyfm), 0, 0, 1, 1},
    {&__pyx_n_s_is_bess, __pyx_k_is_bess, sizeof(__pyx_k_is_bess), 0, 0, 1, 1},
    {&__pyx_n_s_is_blackman, __pyx_k_is_blackman, sizeof(__pyx_k_is_blackman), 0, 0, 1, 1},
    {&__pyx_n_s_is_blsaw, __pyx_k_is_blsaw, sizeof(__pyx_k_is_blsaw), 0, 0, 1, 1},
    {&__pyx_n_s_is_brown_noise, __pyx_k_is_brown_noise, sizeof(__pyx_k_is_brown_noise), 0, 0, 1, 1},
    {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
    {&__pyx_n_s_is_dblsum, __pyx_k_is_dblsum, sizeof(__pyx_k_is_dblsum), 0, 0, 1, 1},
    {&__pyx_n_s_is_eoddcos, __pyx_k_is_eoddcos, sizeof(__pyx_k_is_eoddcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_ercos, __pyx_k_is_ercos, sizeof(__pyx_k_is_ercos), 0, 0, 1, 1},
    {&__pyx_n_s_is_erssb, __pyx_k_is_erssb, sizeof(__pyx_k_is_erssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_exponentially_weighted_moving, __pyx_k_is_exponentially_weighted_moving, sizeof(__pyx_k_is_exponentially_weighted_moving), 0, 0, 1, 1},
    {&__pyx_n_s_is_fmssb, __pyx_k_is_fmssb, sizeof(__pyx_k_is_fmssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_green_noise, __pyx_k_is_green_noise, sizeof(__pyx_k_is_green_noise), 0, 0, 1, 1},
    {&__pyx_n_s_is_green_noise_interp, __pyx_k_is_green_noise_interp, sizeof(__pyx_k_is_green_noise_interp), 0, 0, 1, 1},
    {&__pyx_n_s_is_izcos, __pyx_k_is_izcos, sizeof(__pyx_k_is_izcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_j0evencos, __pyx_k_is_j0evencos, sizeof(__pyx_k_is_j0evencos), 0, 0, 1, 1},
    {&__pyx_n_s_is_j0j1cos, __pyx_k_is_j0j1cos, sizeof(__pyx_k_is_j0j1cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_j2cos, __pyx_k_is_j2cos, sizeof(__pyx_k_is_j2cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_jcos, __pyx_k_is_jcos, sizeof(__pyx_k_is_jcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_jjcos, __pyx_k_is_jjcos, sizeof(__pyx_k_is_jjcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_jncos, __pyx_k_is_jncos, sizeof(__pyx_k_is_jncos), 0, 0, 1, 1},
    {&__pyx_n_s_is_jpcos, __pyx_k_is_jpcos, sizeof(__pyx_k_is_jpcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_jycos, __pyx_k_is_jycos, sizeof(__pyx_k_is_jycos), 0, 0, 1, 1},
    {&__pyx_n_s_is_k2cos, __pyx_k_is_k2cos, sizeof(__pyx_k_is_k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_k2sin, __pyx_k_is_k2sin, sizeof(__pyx_k_is_k2sin), 0, 0, 1, 1},
    {&__pyx_n_s_is_k2ssb, __pyx_k_is_k2ssb, sizeof(__pyx_k_is_k2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_k3sin, __pyx_k_is_k3sin, sizeof(__pyx_k_is_k3sin), 0, 0, 1, 1},
    {&__pyx_n_s_is_krksin, __pyx_k_is_krksin, sizeof(__pyx_k_is_krksin), 0, 0, 1, 1},
    {&__pyx_n_s_is_moving_fft, __pyx_k_is_moving_fft, sizeof(__pyx_k_is_moving_fft), 0, 0, 1, 1},
    {&__pyx_n_s_is_moving_length, __pyx_k_is_moving_length, sizeof(__pyx_k_is_moving_length), 0, 0, 1, 1},
    {&__pyx_n_s_is_moving_rms, __pyx_k_is_moving_rms, sizeof(__pyx_k_is_moving_rms), 0, 0, 1, 1},
    {&__pyx_n_s_is_moving_sum, __pyx_k_is_moving_sum, sizeof(__pyx_k_is_moving_sum), 0, 0, 1, 1},
    {&__pyx_n_s_is_moving_variance, __pyx_k_is_moving_variance, sizeof(__pyx_k_is_moving_variance), 0, 0, 1, 1},
    {&__pyx_n_s_is_n1cos, __pyx_k_is_n1cos, sizeof(__pyx_k_is_n1cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nchoosekcos, __pyx_k_is_nchoosekcos, sizeof(__pyx_k_is_nchoosekcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_ncos2, __pyx_k_is_ncos2, sizeof(__pyx_k_is_ncos2), 0, 0, 1, 1},
    {&__pyx_n_s_is_ncos4, __pyx_k_is_ncos4, sizeof(__pyx_k_is_ncos4), 0, 0, 1, 1},
    {&__pyx_n_s_is_ncos5, __pyx_k_is_ncos5, sizeof(__pyx_k_is_ncos5), 0, 0, 1, 1},
    {&__pyx_n_s_is_nkssb, __pyx_k_is_nkssb, sizeof(__pyx_k_is_nkssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_noddcos, __pyx_k_is_noddcos, sizeof(__pyx_k_is_noddcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_noddsin, __pyx_k_is_noddsin, sizeof(__pyx_k_is_noddsin), 0, 0, 1, 1},
    {&__pyx_n_s_is_noddssb, __pyx_k_is_noddssb, sizeof(__pyx_k_is_noddssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_npcos, __pyx_k_is_npcos, sizeof(__pyx_k_is_npcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_npos1cos, __pyx_k_is_npos1cos, sizeof(__pyx_k_is_npos1cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_npos3cos, __pyx_k_is_npos3cos, sizeof(__pyx_k_is_npos3cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nrcos, __pyx_k_is_nrcos, sizeof(__pyx_k_is_nrcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nrsin, __pyx_k_is_nrsin, sizeof(__pyx_k_is_nrsin), 0, 0, 1, 1},
    {&__pyx_n_s_is_nrssb, __pyx_k_is_nrssb, sizeof(__pyx_k_is_nrssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_nsin5, __pyx_k_is_nsin5, sizeof(__pyx_k_is_nsin5), 0, 0, 1, 1},
    {&__pyx_n_s_is_nsincos, __pyx_k_is_nsincos, sizeof(__pyx_k_is_nsincos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nssb, __pyx_k_is_nssb, sizeof(__pyx_k_is_nssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_nxy1cos, __pyx_k_is_nxy1cos, sizeof(__pyx_k_is_nxy1cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nxy1sin, __pyx_k_is_nxy1sin, sizeof(__pyx_k_is_nxy1sin), 0, 0, 1, 1},
    {&__pyx_n_s_is_nxycos, __pyx_k_is_nxycos, sizeof(__pyx_k_is_nxycos), 0, 0, 1, 1},
    {&__pyx_n_s_is_nxysin, __pyx_k_is_nxysin, sizeof(__pyx_k_is_nxysin), 0, 0, 1, 1},
    {&__pyx_n_s_is_pink_noise, __pyx_k_is_pink_noise, sizeof(__pyx_k_is_pink_noise), 0, 0, 1, 1},
    {&__pyx_n_s_is_polyoid, __pyx_k_is_polyoid, sizeof(__pyx_k_is_polyoid), 0, 0, 1, 1},
    {&__pyx_n_s_is_r2cos, __pyx_k_is_r2cos, sizeof(__pyx_k_is_r2cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_r2k2cos, __pyx_k_is_r2k2cos, sizeof(__pyx_k_is_r2k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_is_r2kfcos, __pyx_k_is_r2kfcos, sizeof(__pyx_k_is_r2kfcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_r2ssb, __pyx_k_is_r2ssb, sizeof(__pyx_k_is_r2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_rcos, __pyx_k_is_rcos, sizeof(__pyx_k_is_rcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_rkcos, __pyx_k_is_rkcos, sizeof(__pyx_k_is_rkcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_rkfcos, __pyx_k_is_rkfcos, sizeof(__pyx_k_is_rkfcos), 0, 0, 1, 1},
    {&__pyx_n_s_is_rkfssb, __pyx_k_is_rkfssb, sizeof(__pyx_k_is_rkfssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_rkoddssb, __pyx_k_is_rkoddssb, sizeof(__pyx_k_is_rkoddssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_rksin, __pyx_k_is_rksin, sizeof(__pyx_k_is_rksin), 0, 0, 1, 1},
    {&__pyx_n_s_is_rkssb, __pyx_k_is_rkssb, sizeof(__pyx_k_is_rkssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_round_interp, __pyx_k_is_round_interp, sizeof(__pyx_k_is_round_interp), 0, 0, 1, 1},
    {&__pyx_n_s_is_rssb, __pyx_k_is_rssb, sizeof(__pyx_k_is_rssb), 0, 0, 1, 1},
    {&__pyx_n_s_is_rxycos, __pyx_k_is_rxycos, sizeof(__pyx_k_is_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_is_rxysin, __pyx_k_is_rxysin, sizeof(__pyx_k_is_rxysin), 0, 0, 1, 1},
    {&__pyx_n_s_is_safe_rxycos, __pyx_k_is_safe_rxycos, sizeof(__pyx_k_is_safe_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_is_sinc_train, __pyx_k_is_sinc_train, sizeof(__pyx_k_is_sinc_train), 0, 0, 1, 1},
    {&__pyx_n_s_is_tanhsin, __pyx_k_is_tanhsin, sizeof(__pyx_k_is_tanhsin), 0, 0, 1, 1},
    {&__pyx_n_s_is_weighted_moving_average, __pyx_k_is_weighted_moving_average, sizeof(__pyx_k_is_weighted_moving_average), 0, 0, 1, 1},
    {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0},
    {&__pyx_n_s_izcos, __pyx_k_izcos, sizeof(__pyx_k_izcos), 0, 0, 1, 1},
    {&__pyx_n_s_j0evencos, __pyx_k_j0evencos, sizeof(__pyx_k_j0evencos), 0, 0, 1, 1},
    {&__pyx_n_s_j0j1cos, __pyx_k_j0j1cos, sizeof(__pyx_k_j0j1cos), 0, 0, 1, 1},
    {&__pyx_n_s_j2cos, __pyx_k_j2cos, sizeof(__pyx_k_j2cos), 0, 0, 1, 1},
    {&__pyx_n_s_jcos, __pyx_k_jcos, sizeof(__pyx_k_jcos), 0, 0, 1, 1},
    {&__pyx_n_s_jjcos, __pyx_k_jjcos, sizeof(__pyx_k_jjcos), 0, 0, 1, 1},
    {&__pyx_n_s_jncos, __pyx_k_jncos, sizeof(__pyx_k_jncos), 0, 0, 1, 1},
    {&__pyx_n_s_jpcos, __pyx_k_jpcos, sizeof(__pyx_k_jpcos), 0, 0, 1, 1},
    {&__pyx_n_s_jycos, __pyx_k_jycos, sizeof(__pyx_k_jycos), 0, 0, 1, 1},
    {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1},
    {&__pyx_n_s_k2cos, __pyx_k_k2cos, sizeof(__pyx_k_k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_k2sin, __pyx_k_k2sin, sizeof(__pyx_k_k2sin), 0, 0, 1, 1},
    {&__pyx_n_s_k2ssb, __pyx_k_k2ssb, sizeof(__pyx_k_k2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_k3sin, __pyx_k_k3sin, sizeof(__pyx_k_k3sin), 0, 0, 1, 1},
    {&__pyx_n_s_krksin, __pyx_k_krksin, sizeof(__pyx_k_krksin), 0, 0, 1, 1},
    {&__pyx_n_s_last_moving_fft_window, __pyx_k_last_moving_fft_window, sizeof(__pyx_k_last_moving_fft_window), 0, 0, 1, 1},
    {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1},
    {&__pyx_n_s_lo, __pyx_k_lo, sizeof(__pyx_k_lo), 0, 0, 1, 1},
    {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1},
    {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1},
    {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
    {&__pyx_n_s_make_abcos, __pyx_k_make_abcos, sizeof(__pyx_k_make_abcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_absin, __pyx_k_make_absin, sizeof(__pyx_k_make_absin), 0, 0, 1, 1},
    {&__pyx_n_s_make_adjustable_oscil, __pyx_k_make_adjustable_oscil, sizeof(__pyx_k_make_adjustable_oscil), 0, 0, 1, 1},
    {&__pyx_n_s_make_adjustable_sawtooth_wave, __pyx_k_make_adjustable_sawtooth_wave, sizeof(__pyx_k_make_adjustable_sawtooth_wave), 0, 0, 1, 1},
    {&__pyx_n_s_make_adjustable_square_wave, __pyx_k_make_adjustable_square_wave, sizeof(__pyx_k_make_adjustable_square_wave), 0, 0, 1, 1},
    {&__pyx_n_s_make_adjustable_triangle_wave, __pyx_k_make_adjustable_triangle_wave, sizeof(__pyx_k_make_adjustable_triangle_wave), 0, 0, 1, 1},
    {&__pyx_n_s_make_asyfm, __pyx_k_make_asyfm, sizeof(__pyx_k_make_asyfm), 0, 0, 1, 1},
    {&__pyx_n_s_make_bess, __pyx_k_make_bess, sizeof(__pyx_k_make_bess), 0, 0, 1, 1},
    {&__pyx_n_s_make_blackman, __pyx_k_make_blackman, sizeof(__pyx_k_make_blackman), 0, 0, 1, 1},
    {&__pyx_n_s_make_blsaw, __pyx_k_make_blsaw, sizeof(__pyx_k_make_blsaw), 0, 0, 1, 1},
    {&__pyx_n_s_make_brown_noise, __pyx_k_make_brown_noise, sizeof(__pyx_k_make_brown_noise), 0, 0, 1, 1},
    {&__pyx_n_s_make_dblsum, __pyx_k_make_dblsum, sizeof(__pyx_k_make_dblsum), 0, 0, 1, 1},
    {&__pyx_n_s_make_env, __pyx_k_make_env, sizeof(__pyx_k_make_env), 0, 0, 1, 1},
    {&__pyx_n_s_make_eoddcos, __pyx_k_make_eoddcos, sizeof(__pyx_k_make_eoddcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_ercos, __pyx_k_make_ercos, sizeof(__pyx_k_make_ercos), 0, 0, 1, 1},
    {&__pyx_n_s_make_erssb, __pyx_k_make_erssb, sizeof(__pyx_k_make_erssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_exponentially_weighted_movi, __pyx_k_make_exponentially_weighted_movi, sizeof(__pyx_k_make_exponentially_weighted_movi), 0, 0, 1, 1},
    {&__pyx_n_s_make_fmssb, __pyx_k_make_fmssb, sizeof(__pyx_k_make_fmssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_green_noise, __pyx_k_make_green_noise, sizeof(__pyx_k_make_green_noise), 0, 0, 1, 1},
    {&__pyx_n_s_make_green_noise_interp, __pyx_k_make_green_noise_interp, sizeof(__pyx_k_make_green_noise_interp), 0, 0, 1, 1},
    {&__pyx_n_s_make_izcos, __pyx_k_make_izcos, sizeof(__pyx_k_make_izcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_j0evencos, __pyx_k_make_j0evencos, sizeof(__pyx_k_make_j0evencos), 0, 0, 1, 1},
    {&__pyx_n_s_make_j0j1cos, __pyx_k_make_j0j1cos, sizeof(__pyx_k_make_j0j1cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_j2cos, __pyx_k_make_j2cos, sizeof(__pyx_k_make_j2cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_jcos, __pyx_k_make_jcos, sizeof(__pyx_k_make_jcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_jjcos, __pyx_k_make_jjcos, sizeof(__pyx_k_make_jjcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_jncos, __pyx_k_make_jncos, sizeof(__pyx_k_make_jncos), 0, 0, 1, 1},
    {&__pyx_n_s_make_jpcos, __pyx_k_make_jpcos, sizeof(__pyx_k_make_jpcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_jycos, __pyx_k_make_jycos, sizeof(__pyx_k_make_jycos), 0, 0, 1, 1},
    {&__pyx_n_s_make_k2cos, __pyx_k_make_k2cos, sizeof(__pyx_k_make_k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_k2sin, __pyx_k_make_k2sin, sizeof(__pyx_k_make_k2sin), 0, 0, 1, 1},
    {&__pyx_n_s_make_k2ssb, __pyx_k_make_k2ssb, sizeof(__pyx_k_make_k2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_k3sin, __pyx_k_make_k3sin, sizeof(__pyx_k_make_k3sin), 0, 0, 1, 1},
    {&__pyx_n_s_make_krksin, __pyx_k_make_krksin, sizeof(__pyx_k_make_krksin), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_average, __pyx_k_make_moving_average, sizeof(__pyx_k_make_moving_average), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_fft, __pyx_k_make_moving_fft, sizeof(__pyx_k_make_moving_fft), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_length, __pyx_k_make_moving_length, sizeof(__pyx_k_make_moving_length), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_rms, __pyx_k_make_moving_rms, sizeof(__pyx_k_make_moving_rms), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_sum, __pyx_k_make_moving_sum, sizeof(__pyx_k_make_moving_sum), 0, 0, 1, 1},
    {&__pyx_n_s_make_moving_variance, __pyx_k_make_moving_variance, sizeof(__pyx_k_make_moving_variance), 0, 0, 1, 1},
    {&__pyx_n_s_make_n1cos, __pyx_k_make_n1cos, sizeof(__pyx_k_make_n1cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nchoosekcos, __pyx_k_make_nchoosekcos, sizeof(__pyx_k_make_nchoosekcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_ncos2, __pyx_k_make_ncos2, sizeof(__pyx_k_make_ncos2), 0, 0, 1, 1},
    {&__pyx_n_s_make_ncos4, __pyx_k_make_ncos4, sizeof(__pyx_k_make_ncos4), 0, 0, 1, 1},
    {&__pyx_n_s_make_ncos5, __pyx_k_make_ncos5, sizeof(__pyx_k_make_ncos5), 0, 0, 1, 1},
    {&__pyx_n_s_make_nkssb, __pyx_k_make_nkssb, sizeof(__pyx_k_make_nkssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_noddcos, __pyx_k_make_noddcos, sizeof(__pyx_k_make_noddcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_noddsin, __pyx_k_make_noddsin, sizeof(__pyx_k_make_noddsin), 0, 0, 1, 1},
    {&__pyx_n_s_make_noddssb, __pyx_k_make_noddssb, sizeof(__pyx_k_make_noddssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_npcos, __pyx_k_make_npcos, sizeof(__pyx_k_make_npcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_npos1cos, __pyx_k_make_npos1cos, sizeof(__pyx_k_make_npos1cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_npos3cos, __pyx_k_make_npos3cos, sizeof(__pyx_k_make_npos3cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nrcos, __pyx_k_make_nrcos, sizeof(__pyx_k_make_nrcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nrsin, __pyx_k_make_nrsin, sizeof(__pyx_k_make_nrsin), 0, 0, 1, 1},
    {&__pyx_n_s_make_nrssb, __pyx_k_make_nrssb, sizeof(__pyx_k_make_nrssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_nrxysin, __pyx_k_make_nrxysin, sizeof(__pyx_k_make_nrxysin), 0, 0, 1, 1},
    {&__pyx_n_s_make_nsin5, __pyx_k_make_nsin5, sizeof(__pyx_k_make_nsin5), 0, 0, 1, 1},
    {&__pyx_n_s_make_nsincos, __pyx_k_make_nsincos, sizeof(__pyx_k_make_nsincos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nssb, __pyx_k_make_nssb, sizeof(__pyx_k_make_nssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_nxy1cos, __pyx_k_make_nxy1cos, sizeof(__pyx_k_make_nxy1cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nxy1sin, __pyx_k_make_nxy1sin, sizeof(__pyx_k_make_nxy1sin), 0, 0, 1, 1},
    {&__pyx_n_s_make_nxycos, __pyx_k_make_nxycos, sizeof(__pyx_k_make_nxycos), 0, 0, 1, 1},
    {&__pyx_n_s_make_nxysin, __pyx_k_make_nxysin, sizeof(__pyx_k_make_nxysin), 0, 0, 1, 1},
    {&__pyx_n_s_make_one_pole, __pyx_k_make_one_pole, sizeof(__pyx_k_make_one_pole), 0, 0, 1, 1},
    {&__pyx_n_s_make_oscil, __pyx_k_make_oscil, sizeof(__pyx_k_make_oscil), 0, 0, 1, 1},
    {&__pyx_n_s_make_pink_noise, __pyx_k_make_pink_noise, sizeof(__pyx_k_make_pink_noise), 0, 0, 1, 1},
    {&__pyx_n_s_make_polyoid, __pyx_k_make_polyoid, sizeof(__pyx_k_make_polyoid), 0, 0, 1, 1},
    {&__pyx_n_s_make_polywave, __pyx_k_make_polywave, sizeof(__pyx_k_make_polywave), 0, 0, 1, 1},
    {&__pyx_n_s_make_pulse_train, __pyx_k_make_pulse_train, sizeof(__pyx_k_make_pulse_train), 0, 0, 1, 1},
    {&__pyx_n_s_make_r2cos, __pyx_k_make_r2cos, sizeof(__pyx_k_make_r2cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_r2k2cos, __pyx_k_make_r2k2cos, sizeof(__pyx_k_make_r2k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_make_r2kfcos, __pyx_k_make_r2kfcos, sizeof(__pyx_k_make_r2kfcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_r2ssb, __pyx_k_make_r2ssb, sizeof(__pyx_k_make_r2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_rand, __pyx_k_make_rand, sizeof(__pyx_k_make_rand), 0, 0, 1, 1},
    {&__pyx_n_s_make_rand_interp, __pyx_k_make_rand_interp, sizeof(__pyx_k_make_rand_interp), 0, 0, 1, 1},
    {&__pyx_n_s_make_rcos, __pyx_k_make_rcos, sizeof(__pyx_k_make_rcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_rkcos, __pyx_k_make_rkcos, sizeof(__pyx_k_make_rkcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_rkfcos, __pyx_k_make_rkfcos, sizeof(__pyx_k_make_rkfcos), 0, 0, 1, 1},
    {&__pyx_n_s_make_rkfssb, __pyx_k_make_rkfssb, sizeof(__pyx_k_make_rkfssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_rkoddssb, __pyx_k_make_rkoddssb, sizeof(__pyx_k_make_rkoddssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_rksin, __pyx_k_make_rksin, sizeof(__pyx_k_make_rksin), 0, 0, 1, 1},
    {&__pyx_n_s_make_rkssb, __pyx_k_make_rkssb, sizeof(__pyx_k_make_rkssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_round_interp, __pyx_k_make_round_interp, sizeof(__pyx_k_make_round_interp), 0, 0, 1, 1},
    {&__pyx_n_s_make_rssb, __pyx_k_make_rssb, sizeof(__pyx_k_make_rssb), 0, 0, 1, 1},
    {&__pyx_n_s_make_rxycos, __pyx_k_make_rxycos, sizeof(__pyx_k_make_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_make_rxysin, __pyx_k_make_rxysin, sizeof(__pyx_k_make_rxysin), 0, 0, 1, 1},
    {&__pyx_n_s_make_safe_rxycos, __pyx_k_make_safe_rxycos, sizeof(__pyx_k_make_safe_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_make_sinc_train, __pyx_k_make_sinc_train, sizeof(__pyx_k_make_sinc_train), 0, 0, 1, 1},
    {&__pyx_n_s_make_table_lookup, __pyx_k_make_table_lookup, sizeof(__pyx_k_make_table_lookup), 0, 0, 1, 1},
    {&__pyx_n_s_make_table_lookup_with_env, __pyx_k_make_table_lookup_with_env, sizeof(__pyx_k_make_table_lookup_with_env), 0, 0, 1, 1},
    {&__pyx_n_s_make_tanhsin, __pyx_k_make_tanhsin, sizeof(__pyx_k_make_tanhsin), 0, 0, 1, 1},
    {&__pyx_n_s_make_triangle_wave, __pyx_k_make_triangle_wave, sizeof(__pyx_k_make_triangle_wave), 0, 0, 1, 1},
    {&__pyx_n_s_make_wave_train, __pyx_k_make_wave_train, sizeof(__pyx_k_make_wave_train), 0, 0, 1, 1},
    {&__pyx_n_s_make_wave_train_with_env, __pyx_k_make_wave_train_with_env, sizeof(__pyx_k_make_wave_train_with_env), 0, 0, 1, 1},
    {&__pyx_n_s_make_weighted_moving_average, __pyx_k_make_weighted_moving_average, sizeof(__pyx_k_make_weighted_moving_average), 0, 0, 1, 1},
    {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1},
    {&__pyx_n_s_mid, __pyx_k_mid, sizeof(__pyx_k_mid), 0, 0, 1, 1},
    {&__pyx_n_s_moving_fft, __pyx_k_moving_fft, sizeof(__pyx_k_moving_fft), 0, 0, 1, 1},
    {&__pyx_n_s_moving_length, __pyx_k_moving_length, sizeof(__pyx_k_moving_length), 0, 0, 1, 1},
    {&__pyx_n_s_moving_rms, __pyx_k_moving_rms, sizeof(__pyx_k_moving_rms), 0, 0, 1, 1},
    {&__pyx_n_s_moving_sum, __pyx_k_moving_sum, sizeof(__pyx_k_moving_sum), 0, 0, 1, 1},
    {&__pyx_n_s_moving_variance, __pyx_k_moving_variance, sizeof(__pyx_k_moving_variance), 0, 0, 1, 1},
    {&__pyx_n_s_multi_expt_env, __pyx_k_multi_expt_env, sizeof(__pyx_k_multi_expt_env), 0, 0, 1, 1},
    {&__pyx_n_s_multi_expt_env_locals_fun, __pyx_k_multi_expt_env_locals_fun, sizeof(__pyx_k_multi_expt_env_locals_fun), 0, 0, 1, 1},
    {&__pyx_n_s_mus_channel, __pyx_k_mus_channel, sizeof(__pyx_k_mus_channel), 0, 0, 1, 1},
    {&__pyx_n_s_mus_frequency, __pyx_k_mus_frequency, sizeof(__pyx_k_mus_frequency), 0, 0, 1, 1},
    {&__pyx_n_s_mus_increment, __pyx_k_mus_increment, sizeof(__pyx_k_mus_increment), 0, 0, 1, 1},
    {&__pyx_n_s_mus_phase, __pyx_k_mus_phase, sizeof(__pyx_k_mus_phase), 0, 0, 1, 1},
    {&__pyx_n_s_mus_reset, __pyx_k_mus_reset, sizeof(__pyx_k_mus_reset), 0, 0, 1, 1},
    {&__pyx_n_s_mus_run, __pyx_k_mus_run, sizeof(__pyx_k_mus_run), 0, 0, 1, 1},
    {&__pyx_n_s_mus_xcoeffs, __pyx_k_mus_xcoeffs, sizeof(__pyx_k_mus_xcoeffs), 0, 0, 1, 1},
    {&__pyx_n_s_mus_ycoeffs, __pyx_k_mus_ycoeffs, sizeof(__pyx_k_mus_ycoeffs), 0, 0, 1, 1},
    {&__pyx_kp_u_must_be_r, __pyx_k_must_be_r, sizeof(__pyx_k_must_be_r), 0, 1, 0, 0},
    {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
    {&__pyx_n_s_n1cos, __pyx_k_n1cos, sizeof(__pyx_k_n1cos), 0, 0, 1, 1},
    {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
    {&__pyx_n_s_nchoosekcos, __pyx_k_nchoosekcos, sizeof(__pyx_k_nchoosekcos), 0, 0, 1, 1},
    {&__pyx_n_s_ncos2, __pyx_k_ncos2, sizeof(__pyx_k_ncos2), 0, 0, 1, 1},
    {&__pyx_n_s_ncos4, __pyx_k_ncos4, sizeof(__pyx_k_ncos4), 0, 0, 1, 1},
    {&__pyx_n_s_ncos5, __pyx_k_ncos5, sizeof(__pyx_k_ncos5), 0, 0, 1, 1},
    {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
    {&__pyx_n_s_next, __pyx_k_next, sizeof(__pyx_k_next), 0, 0, 1, 1},
    {&__pyx_n_s_next_i, __pyx_k_next_i, sizeof(__pyx_k_next_i), 0, 0, 1, 1},
    {&__pyx_n_s_next_j, __pyx_k_next_j, sizeof(__pyx_k_next_j), 0, 0, 1, 1},
    {&__pyx_n_s_nkssb, __pyx_k_nkssb, sizeof(__pyx_k_nkssb), 0, 0, 1, 1},
    {&__pyx_n_s_nkssb_interp, __pyx_k_nkssb_interp, sizeof(__pyx_k_nkssb_interp), 0, 0, 1, 1},
    {&__pyx_n_s_noddcos, __pyx_k_noddcos, sizeof(__pyx_k_noddcos), 0, 0, 1, 1},
    {&__pyx_n_s_nodds, __pyx_k_nodds, sizeof(__pyx_k_nodds), 0, 0, 1, 1},
    {&__pyx_n_s_noddsin, __pyx_k_noddsin, sizeof(__pyx_k_noddsin), 0, 0, 1, 1},
    {&__pyx_n_s_noddssb, __pyx_k_noddssb, sizeof(__pyx_k_noddssb), 0, 0, 1, 1},
    {&__pyx_n_s_norm, __pyx_k_norm, sizeof(__pyx_k_norm), 0, 0, 1, 1},
    {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1},
    {&__pyx_n_s_npcos, __pyx_k_npcos, sizeof(__pyx_k_npcos), 0, 0, 1, 1},
    {&__pyx_n_s_npos1cos, __pyx_k_npos1cos, sizeof(__pyx_k_npos1cos), 0, 0, 1, 1},
    {&__pyx_n_s_npos3cos, __pyx_k_npos3cos, sizeof(__pyx_k_npos3cos), 0, 0, 1, 1},
    {&__pyx_n_s_nrcos, __pyx_k_nrcos, sizeof(__pyx_k_nrcos), 0, 0, 1, 1},
    {&__pyx_n_s_nrsin, __pyx_k_nrsin, sizeof(__pyx_k_nrsin), 0, 0, 1, 1},
    {&__pyx_n_s_nrssb, __pyx_k_nrssb, sizeof(__pyx_k_nrssb), 0, 0, 1, 1},
    {&__pyx_n_s_nrssb_interp, __pyx_k_nrssb_interp, sizeof(__pyx_k_nrssb_interp), 0, 0, 1, 1},
    {&__pyx_n_s_ns, __pyx_k_ns, sizeof(__pyx_k_ns), 0, 0, 1, 1},
    {&__pyx_n_s_nsin5, __pyx_k_nsin5, sizeof(__pyx_k_nsin5), 0, 0, 1, 1},
    {&__pyx_n_s_nsincos, __pyx_k_nsincos, sizeof(__pyx_k_nsincos), 0, 0, 1, 1},
    {&__pyx_n_s_nssb, __pyx_k_nssb, sizeof(__pyx_k_nssb), 0, 0, 1, 1},
    {&__pyx_n_s_num, __pyx_k_num, sizeof(__pyx_k_num), 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_nxy1cos, __pyx_k_nxy1cos, sizeof(__pyx_k_nxy1cos), 0, 0, 1, 1},
    {&__pyx_n_s_nxy1sin, __pyx_k_nxy1sin, sizeof(__pyx_k_nxy1sin), 0, 0, 1, 1},
    {&__pyx_n_s_nxycos, __pyx_k_nxycos, sizeof(__pyx_k_nxycos), 0, 0, 1, 1},
    {&__pyx_n_s_nxysin, __pyx_k_nxysin, sizeof(__pyx_k_nxysin), 0, 0, 1, 1},
    {&__pyx_n_s_osc, __pyx_k_osc, sizeof(__pyx_k_osc), 0, 0, 1, 1},
    {&__pyx_n_s_outctr, __pyx_k_outctr, sizeof(__pyx_k_outctr), 0, 0, 1, 1},
    {&__pyx_n_s_partial_amps_and_phases, __pyx_k_partial_amps_and_phases, sizeof(__pyx_k_partial_amps_and_phases), 0, 0, 1, 1},
    {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1},
    {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
    {&__pyx_n_s_pink_noise, __pyx_k_pink_noise, sizeof(__pyx_k_pink_noise), 0, 0, 1, 1},
    {&__pyx_n_s_polyoid, __pyx_k_polyoid, sizeof(__pyx_k_polyoid), 0, 0, 1, 1},
    {&__pyx_n_s_polyoid_tn, __pyx_k_polyoid_tn, sizeof(__pyx_k_polyoid_tn), 0, 0, 1, 1},
    {&__pyx_n_s_polyoid_un, __pyx_k_polyoid_un, sizeof(__pyx_k_polyoid_un), 0, 0, 1, 1},
    {&__pyx_n_s_pow, __pyx_k_pow, sizeof(__pyx_k_pow), 0, 0, 1, 1},
    {&__pyx_n_s_pulse_env, __pyx_k_pulse_env, sizeof(__pyx_k_pulse_env), 0, 0, 1, 1},
    {&__pyx_n_s_pysndlib, __pyx_k_pysndlib, sizeof(__pyx_k_pysndlib), 0, 0, 1, 1},
    {&__pyx_n_s_pysndlib_clm, __pyx_k_pysndlib_clm, sizeof(__pyx_k_pysndlib_clm), 0, 0, 1, 1},
    {&__pyx_n_s_pysndlib_generators, __pyx_k_pysndlib_generators, sizeof(__pyx_k_pysndlib_generators), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Abcos, __pyx_k_pyx_unpickle_Abcos, sizeof(__pyx_k_pyx_unpickle_Abcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Absin, __pyx_k_pyx_unpickle_Absin, sizeof(__pyx_k_pyx_unpickle_Absin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_AdjustableOscil, __pyx_k_pyx_unpickle_AdjustableOscil, sizeof(__pyx_k_pyx_unpickle_AdjustableOscil), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_AdjustableSawtoot, __pyx_k_pyx_unpickle_AdjustableSawtoot, sizeof(__pyx_k_pyx_unpickle_AdjustableSawtoot), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_AdjustableSquareW, __pyx_k_pyx_unpickle_AdjustableSquareW, sizeof(__pyx_k_pyx_unpickle_AdjustableSquareW), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_AdjustableTriangl, __pyx_k_pyx_unpickle_AdjustableTriangl, sizeof(__pyx_k_pyx_unpickle_AdjustableTriangl), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Asyfm, __pyx_k_pyx_unpickle_Asyfm, sizeof(__pyx_k_pyx_unpickle_Asyfm), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Bess, __pyx_k_pyx_unpickle_Bess, sizeof(__pyx_k_pyx_unpickle_Bess), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Blackman, __pyx_k_pyx_unpickle_Blackman, sizeof(__pyx_k_pyx_unpickle_Blackman), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Blsaw, __pyx_k_pyx_unpickle_Blsaw, sizeof(__pyx_k_pyx_unpickle_Blsaw), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_BrownNoise, __pyx_k_pyx_unpickle_BrownNoise, sizeof(__pyx_k_pyx_unpickle_BrownNoise), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_CLMGenerator, __pyx_k_pyx_unpickle_CLMGenerator, sizeof(__pyx_k_pyx_unpickle_CLMGenerator), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Dblsum, __pyx_k_pyx_unpickle_Dblsum, sizeof(__pyx_k_pyx_unpickle_Dblsum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Eoddcos, __pyx_k_pyx_unpickle_Eoddcos, sizeof(__pyx_k_pyx_unpickle_Eoddcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Ercos, __pyx_k_pyx_unpickle_Ercos, sizeof(__pyx_k_pyx_unpickle_Ercos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Erssb, __pyx_k_pyx_unpickle_Erssb, sizeof(__pyx_k_pyx_unpickle_Erssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_ExponentiallyWeig, __pyx_k_pyx_unpickle_ExponentiallyWeig, sizeof(__pyx_k_pyx_unpickle_ExponentiallyWeig), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Fmssb, __pyx_k_pyx_unpickle_Fmssb, sizeof(__pyx_k_pyx_unpickle_Fmssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_GreenNoise, __pyx_k_pyx_unpickle_GreenNoise, sizeof(__pyx_k_pyx_unpickle_GreenNoise), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_GreenNoiseInterp, __pyx_k_pyx_unpickle_GreenNoiseInterp, sizeof(__pyx_k_pyx_unpickle_GreenNoiseInterp), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Izcos, __pyx_k_pyx_unpickle_Izcos, sizeof(__pyx_k_pyx_unpickle_Izcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_J0evencos, __pyx_k_pyx_unpickle_J0evencos, sizeof(__pyx_k_pyx_unpickle_J0evencos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_J0j1cos, __pyx_k_pyx_unpickle_J0j1cos, sizeof(__pyx_k_pyx_unpickle_J0j1cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_J2cos, __pyx_k_pyx_unpickle_J2cos, sizeof(__pyx_k_pyx_unpickle_J2cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Jcos, __pyx_k_pyx_unpickle_Jcos, sizeof(__pyx_k_pyx_unpickle_Jcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Jjcos, __pyx_k_pyx_unpickle_Jjcos, sizeof(__pyx_k_pyx_unpickle_Jjcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Jncos, __pyx_k_pyx_unpickle_Jncos, sizeof(__pyx_k_pyx_unpickle_Jncos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Jpcos, __pyx_k_pyx_unpickle_Jpcos, sizeof(__pyx_k_pyx_unpickle_Jpcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Jycos, __pyx_k_pyx_unpickle_Jycos, sizeof(__pyx_k_pyx_unpickle_Jycos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_K2cos, __pyx_k_pyx_unpickle_K2cos, sizeof(__pyx_k_pyx_unpickle_K2cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_K2sin, __pyx_k_pyx_unpickle_K2sin, sizeof(__pyx_k_pyx_unpickle_K2sin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_K2ssb, __pyx_k_pyx_unpickle_K2ssb, sizeof(__pyx_k_pyx_unpickle_K2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_K3sin, __pyx_k_pyx_unpickle_K3sin, sizeof(__pyx_k_pyx_unpickle_K3sin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Krksin, __pyx_k_pyx_unpickle_Krksin, sizeof(__pyx_k_pyx_unpickle_Krksin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_MovingFFT, __pyx_k_pyx_unpickle_MovingFFT, sizeof(__pyx_k_pyx_unpickle_MovingFFT), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_MovingLength, __pyx_k_pyx_unpickle_MovingLength, sizeof(__pyx_k_pyx_unpickle_MovingLength), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_MovingRMS, __pyx_k_pyx_unpickle_MovingRMS, sizeof(__pyx_k_pyx_unpickle_MovingRMS), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_MovingSum, __pyx_k_pyx_unpickle_MovingSum, sizeof(__pyx_k_pyx_unpickle_MovingSum), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_MovingVariance, __pyx_k_pyx_unpickle_MovingVariance, sizeof(__pyx_k_pyx_unpickle_MovingVariance), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_N1cos, __pyx_k_pyx_unpickle_N1cos, sizeof(__pyx_k_pyx_unpickle_N1cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nchoosekcos, __pyx_k_pyx_unpickle_Nchoosekcos, sizeof(__pyx_k_pyx_unpickle_Nchoosekcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Ncos2, __pyx_k_pyx_unpickle_Ncos2, sizeof(__pyx_k_pyx_unpickle_Ncos2), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Ncos4, __pyx_k_pyx_unpickle_Ncos4, sizeof(__pyx_k_pyx_unpickle_Ncos4), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Ncos5, __pyx_k_pyx_unpickle_Ncos5, sizeof(__pyx_k_pyx_unpickle_Ncos5), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nkssb, __pyx_k_pyx_unpickle_Nkssb, sizeof(__pyx_k_pyx_unpickle_Nkssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Noddcos, __pyx_k_pyx_unpickle_Noddcos, sizeof(__pyx_k_pyx_unpickle_Noddcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Noddsin, __pyx_k_pyx_unpickle_Noddsin, sizeof(__pyx_k_pyx_unpickle_Noddsin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Noddssb, __pyx_k_pyx_unpickle_Noddssb, sizeof(__pyx_k_pyx_unpickle_Noddssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Npcos, __pyx_k_pyx_unpickle_Npcos, sizeof(__pyx_k_pyx_unpickle_Npcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Npos1cos, __pyx_k_pyx_unpickle_Npos1cos, sizeof(__pyx_k_pyx_unpickle_Npos1cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Npos3cos, __pyx_k_pyx_unpickle_Npos3cos, sizeof(__pyx_k_pyx_unpickle_Npos3cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nrcos, __pyx_k_pyx_unpickle_Nrcos, sizeof(__pyx_k_pyx_unpickle_Nrcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nrssb, __pyx_k_pyx_unpickle_Nrssb, sizeof(__pyx_k_pyx_unpickle_Nrssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nsin5, __pyx_k_pyx_unpickle_Nsin5, sizeof(__pyx_k_pyx_unpickle_Nsin5), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nsincos, __pyx_k_pyx_unpickle_Nsincos, sizeof(__pyx_k_pyx_unpickle_Nsincos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nssb, __pyx_k_pyx_unpickle_Nssb, sizeof(__pyx_k_pyx_unpickle_Nssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nxy1cos, __pyx_k_pyx_unpickle_Nxy1cos, sizeof(__pyx_k_pyx_unpickle_Nxy1cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nxy1sin, __pyx_k_pyx_unpickle_Nxy1sin, sizeof(__pyx_k_pyx_unpickle_Nxy1sin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nxycos, __pyx_k_pyx_unpickle_Nxycos, sizeof(__pyx_k_pyx_unpickle_Nxycos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Nxysin, __pyx_k_pyx_unpickle_Nxysin, sizeof(__pyx_k_pyx_unpickle_Nxysin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_PinkNoise, __pyx_k_pyx_unpickle_PinkNoise, sizeof(__pyx_k_pyx_unpickle_PinkNoise), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_R2cos, __pyx_k_pyx_unpickle_R2cos, sizeof(__pyx_k_pyx_unpickle_R2cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_R2k2cos, __pyx_k_pyx_unpickle_R2k2cos, sizeof(__pyx_k_pyx_unpickle_R2k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_R2kfcos, __pyx_k_pyx_unpickle_R2kfcos, sizeof(__pyx_k_pyx_unpickle_R2kfcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_R2ssb, __pyx_k_pyx_unpickle_R2ssb, sizeof(__pyx_k_pyx_unpickle_R2ssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rcos, __pyx_k_pyx_unpickle_Rcos, sizeof(__pyx_k_pyx_unpickle_Rcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rkcos, __pyx_k_pyx_unpickle_Rkcos, sizeof(__pyx_k_pyx_unpickle_Rkcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rkfcos, __pyx_k_pyx_unpickle_Rkfcos, sizeof(__pyx_k_pyx_unpickle_Rkfcos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rkfssb, __pyx_k_pyx_unpickle_Rkfssb, sizeof(__pyx_k_pyx_unpickle_Rkfssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rkoddssb, __pyx_k_pyx_unpickle_Rkoddssb, sizeof(__pyx_k_pyx_unpickle_Rkoddssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rksin, __pyx_k_pyx_unpickle_Rksin, sizeof(__pyx_k_pyx_unpickle_Rksin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rkssb, __pyx_k_pyx_unpickle_Rkssb, sizeof(__pyx_k_pyx_unpickle_Rkssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_RoundInterp, __pyx_k_pyx_unpickle_RoundInterp, sizeof(__pyx_k_pyx_unpickle_RoundInterp), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rssb, __pyx_k_pyx_unpickle_Rssb, sizeof(__pyx_k_pyx_unpickle_Rssb), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rxycos, __pyx_k_pyx_unpickle_Rxycos, sizeof(__pyx_k_pyx_unpickle_Rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Rxysin, __pyx_k_pyx_unpickle_Rxysin, sizeof(__pyx_k_pyx_unpickle_Rxysin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_SafeRxycos, __pyx_k_pyx_unpickle_SafeRxycos, sizeof(__pyx_k_pyx_unpickle_SafeRxycos), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_SincTrain, __pyx_k_pyx_unpickle_SincTrain, sizeof(__pyx_k_pyx_unpickle_SincTrain), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_Tanhsin, __pyx_k_pyx_unpickle_Tanhsin, sizeof(__pyx_k_pyx_unpickle_Tanhsin), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_unpickle_WeightedMovingAve, __pyx_k_pyx_unpickle_WeightedMovingAve, sizeof(__pyx_k_pyx_unpickle_WeightedMovingAve), 0, 0, 1, 1},
    {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
    {&__pyx_n_s_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 0, 1, 1},
    {&__pyx_n_s_r2cos, __pyx_k_r2cos, sizeof(__pyx_k_r2cos), 0, 0, 1, 1},
    {&__pyx_n_s_r2k2cos, __pyx_k_r2k2cos, sizeof(__pyx_k_r2k2cos), 0, 0, 1, 1},
    {&__pyx_n_s_r2kfcos, __pyx_k_r2kfcos, sizeof(__pyx_k_r2kfcos), 0, 0, 1, 1},
    {&__pyx_n_s_r2ssb, __pyx_k_r2ssb, sizeof(__pyx_k_r2ssb), 0, 0, 1, 1},
    {&__pyx_kp_u_r_2, __pyx_k_r_2, sizeof(__pyx_k_r_2), 0, 1, 0, 0},
    {&__pyx_n_s_random, __pyx_k_random, sizeof(__pyx_k_random), 0, 0, 1, 1},
    {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
    {&__pyx_n_s_ratio, __pyx_k_ratio, sizeof(__pyx_k_ratio), 0, 0, 1, 1},
    {&__pyx_n_s_rcos, __pyx_k_rcos, sizeof(__pyx_k_rcos), 0, 0, 1, 1},
    {&__pyx_n_s_reader, __pyx_k_reader, sizeof(__pyx_k_reader), 0, 0, 1, 1},
    {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1},
    {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
    {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
    {&__pyx_n_s_rkcos, __pyx_k_rkcos, sizeof(__pyx_k_rkcos), 0, 0, 1, 1},
    {&__pyx_n_s_rkfcos, __pyx_k_rkfcos, sizeof(__pyx_k_rkfcos), 0, 0, 1, 1},
    {&__pyx_n_s_rkfssb, __pyx_k_rkfssb, sizeof(__pyx_k_rkfssb), 0, 0, 1, 1},
    {&__pyx_n_s_rkoddssb, __pyx_k_rkoddssb, sizeof(__pyx_k_rkoddssb), 0, 0, 1, 1},
    {&__pyx_n_s_rksin, __pyx_k_rksin, sizeof(__pyx_k_rksin), 0, 0, 1, 1},
    {&__pyx_n_s_rkssb, __pyx_k_rkssb, sizeof(__pyx_k_rkssb), 0, 0, 1, 1},
    {&__pyx_n_s_rl, __pyx_k_rl, sizeof(__pyx_k_rl), 0, 0, 1, 1},
    {&__pyx_n_s_rnd, __pyx_k_rnd, sizeof(__pyx_k_rnd), 0, 0, 1, 1},
    {&__pyx_n_s_roll, __pyx_k_roll, sizeof(__pyx_k_roll), 0, 0, 1, 1},
    {&__pyx_n_s_round_interp, __pyx_k_round_interp, sizeof(__pyx_k_round_interp), 0, 0, 1, 1},
    {&__pyx_n_s_rssb, __pyx_k_rssb, sizeof(__pyx_k_rssb), 0, 0, 1, 1},
    {&__pyx_n_s_rssb_interp, __pyx_k_rssb_interp, sizeof(__pyx_k_rssb_interp), 0, 0, 1, 1},
    {&__pyx_n_s_rxycos, __pyx_k_rxycos, sizeof(__pyx_k_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_rxysin, __pyx_k_rxysin, sizeof(__pyx_k_rxysin), 0, 0, 1, 1},
    {&__pyx_n_s_safe_rxycos, __pyx_k_safe_rxycos, sizeof(__pyx_k_safe_rxycos), 0, 0, 1, 1},
    {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1},
    {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
    {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
    {&__pyx_n_s_sin, __pyx_k_sin, sizeof(__pyx_k_sin), 0, 0, 1, 1},
    {&__pyx_n_s_sinc_train, __pyx_k_sinc_train, sizeof(__pyx_k_sinc_train), 0, 0, 1, 1},
    {&__pyx_n_s_sine_env, __pyx_k_sine_env, sizeof(__pyx_k_sine_env), 0, 0, 1, 1},
    {&__pyx_n_s_sinh, __pyx_k_sinh, sizeof(__pyx_k_sinh), 0, 0, 1, 1},
    {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
    {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
    {&__pyx_n_s_sqrt, __pyx_k_sqrt, sizeof(__pyx_k_sqrt), 0, 0, 1, 1},
    {&__pyx_n_s_square_env, __pyx_k_square_env, sizeof(__pyx_k_square_env), 0, 0, 1, 1},
    {&__pyx_kp_s_src_pysndlib_generators_pyx, __pyx_k_src_pysndlib_generators_pyx, sizeof(__pyx_k_src_pysndlib_generators_pyx), 0, 0, 1, 0},
    {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1},
    {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
    {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1},
    {&__pyx_n_s_table_size, __pyx_k_table_size, sizeof(__pyx_k_table_size), 0, 0, 1, 1},
    {&__pyx_n_s_tan, __pyx_k_tan, sizeof(__pyx_k_tan), 0, 0, 1, 1},
    {&__pyx_n_s_tanh, __pyx_k_tanh, sizeof(__pyx_k_tanh), 0, 0, 1, 1},
    {&__pyx_n_s_tanhsin, __pyx_k_tanhsin, sizeof(__pyx_k_tanhsin), 0, 0, 1, 1},
    {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
    {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
    {&__pyx_n_s_use_setstate, __pyx_k_use_setstate, sizeof(__pyx_k_use_setstate), 0, 0, 1, 1},
    {&__pyx_n_s_warn, __pyx_k_warn, sizeof(__pyx_k_warn), 0, 0, 1, 1},
    {&__pyx_n_s_warnings, __pyx_k_warnings, sizeof(__pyx_k_warnings), 0, 0, 1, 1},
    {&__pyx_n_s_weighted_moving_average, __pyx_k_weighted_moving_average, sizeof(__pyx_k_weighted_moving_average), 0, 0, 1, 1},
    {&__pyx_kp_u_will_cause_bes_y0_to_return_inf, __pyx_k_will_cause_bes_y0_to_return_inf, sizeof(__pyx_k_will_cause_bes_y0_to_return_inf), 0, 1, 0, 0},
    {&__pyx_n_s_window, __pyx_k_window, sizeof(__pyx_k_window), 0, 0, 1, 1},
    {&__pyx_n_s_wrap, __pyx_k_wrap, sizeof(__pyx_k_wrap), 0, 0, 1, 1},
    {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
    {&__pyx_n_s_xcoeffs, __pyx_k_xcoeffs, sizeof(__pyx_k_xcoeffs), 0, 0, 1, 1},
    {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1},
    {&__pyx_n_s_ycoeffs, __pyx_k_ycoeffs, sizeof(__pyx_k_ycoeffs), 0, 0, 1, 1},
    {&__pyx_n_s_yhi, __pyx_k_yhi, sizeof(__pyx_k_yhi), 0, 0, 1, 1},
    {&__pyx_n_s_ylo, __pyx_k_ylo, sizeof(__pyx_k_ylo), 0, 0, 1, 1},
    {&__pyx_n_s_zeros, __pyx_k_zeros, sizeof(__pyx_k_zeros), 0, 0, 1, 1},
    {0, 0, 0, 0, 0, 0, 0}
  };
  return __Pyx_InitStrings(__pyx_string_tab);
}
/* #### Code section: cached_builtins ### */
static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s_super); if (!__pyx_builtin_super) __PYX_ERR(0, 592, __pyx_L1_error)
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 1108, __pyx_L1_error)
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 3098, __pyx_L1_error)
  __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 139, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: cached_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "cfunc.to_py":67
 * @cname("__Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y")
 * cdef object __Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y(double (*f)(object) except? -1):
 *     def wrap(object y):             # <<<<<<<<<<<<<<
 *         """wrap(y) -> float"""
 *         return f(y)
 */
  __pyx_tuple__3 = PyTuple_Pack(1, __pyx_n_s_y); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);
  __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_wrap, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(1, 67, __pyx_L1_error)

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":984
 *         __pyx_import_array()
 *     except Exception:
 *         raise ImportError("numpy.core.multiarray failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_umath() except -1:
 */
  __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "../../../../../private/var/folders/kx/gw6dssyn19d9qjs9mvh4hkz80000gn/T/build-env-ztoci14v/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":990
 *         _import_umath()
 *     except Exception:
 *         raise ImportError("numpy.core.umath failed to import")             # <<<<<<<<<<<<<<
 * 
 * cdef inline int import_ufunc() except -1:
 */
  __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "pysndlib/generators.pyx":93
 * 
 * def find_nxysin_max(n, ratio):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *         a2 = x / 2
 *         den = sin(a2)
 */
  __pyx_tuple__7 = PyTuple_Pack(4, __pyx_n_s_x, __pyx_n_s_n, __pyx_n_s_a2, __pyx_n_s_den); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 93, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);
  __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ns, 93, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 93, __pyx_L1_error)

  /* "pysndlib/generators.pyx":101
 *             return (sin(n*a2) * sin((1 + n) * a2)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */
  __pyx_tuple__9 = PyTuple_Pack(6, __pyx_n_s_n, __pyx_n_s_lo, __pyx_n_s_hi, __pyx_n_s_mid, __pyx_n_s_ylo, __pyx_n_s_yhi); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);
  __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_find_mid_max, 101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 101, __pyx_L1_error)

  /* "pysndlib/generators.pyx":113
 *                 return find_mid_max(n, mid, hi)
 * 
 *     def find_nodds_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */
  __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_find_nodds_mid_max, 113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 113, __pyx_L1_error)

  /* "pysndlib/generators.pyx":348
 * 
 * def find_noddsin_max(n):
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = nodds(lo, n)
 */
  __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_find_mid_max, 348, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 348, __pyx_L1_error)

  /* "pysndlib/generators.pyx":366
 * 
 *     def __init__(self, frequency, ratio=1., n=1):
 *         noddsin_maxes = np.zeros(100, dtype=np.double) # temporary             # <<<<<<<<<<<<<<
 *         self.frequency = clm.hz2radians(frequency)
 *         self.ratio = ratio
 */
  __pyx_tuple__13 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  /* "pysndlib/generators.pyx":741
 * 
 * def find_nsin5_max(n):
 *     def ns(x, n):             # <<<<<<<<<<<<<<
 *             den = tan(.5 * x)
 *             if fabs(den) < NEARLY_ZERO:
 */
  __pyx_tuple__14 = PyTuple_Pack(3, __pyx_n_s_x, __pyx_n_s_n, __pyx_n_s_den); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 741, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);
  __pyx_codeobj__15 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ns, 741, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 741, __pyx_L1_error)

  /* "pysndlib/generators.pyx":748
 *                 return (1.0 - cos(n * x)) / den
 * 
 *     def find_mid_max(n, lo, hi):             # <<<<<<<<<<<<<<
 *         mid = (lo + hi) / 2
 *         ylo = ns(lo, n)
 */
  __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_find_mid_max, 748, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 748, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3098
 *         self.k = k
 *         if self.r == self.a:
 *             raise ValueError("Jpcos: r and a can't have same value")             # <<<<<<<<<<<<<<
 *         self.angle = 0.0
 * 
 */
  __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_u_Jpcos_r_and_a_can_t_have_same_va); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 3098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "pysndlib/generators.pyx":3962
 * 
 * def multi_expt_env(e, expts):
 *     def fun(y):             # <<<<<<<<<<<<<<
 *         b = expts[clm.channels(e) % len(expts)]
 *         return ((b**y) - 1.0) / (b - 1.0)
 */
  __pyx_tuple__20 = PyTuple_Pack(2, __pyx_n_s_y, __pyx_n_s_b); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 3962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);
  __pyx_codeobj__21 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__20, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_fun, 3962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__21)) __PYX_ERR(0, 3962, __pyx_L1_error)

  /* "(tree fragment)":4
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 *     if __pyx_checksum not in (0xe3b0c44, 0xda39a3e, 0xd41d8cd):             # <<<<<<<<<<<<<<
 *         from pickle import PickleError as __pyx_PickleError
 *         raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0xe3b0c44, 0xda39a3e, 0xd41d8cd) = ())" % __pyx_checksum
 */
  __pyx_tuple__24 = PyTuple_Pack(3, __pyx_int_238750788, __pyx_int_228825662, __pyx_int_222419149); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);
  __pyx_tuple__25 = PyTuple_Pack(3, __pyx_int_6431051, __pyx_int_208169003, __pyx_int_255285684); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);
  __pyx_tuple__26 = PyTuple_Pack(3, __pyx_int_203726100, __pyx_int_267403128, __pyx_int_121268523); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);
  __pyx_tuple__27 = PyTuple_Pack(3, __pyx_int_114002020, __pyx_int_199292263, __pyx_int_243792574); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);
  __pyx_tuple__28 = PyTuple_Pack(3, __pyx_int_64927267, __pyx_int_9695810, __pyx_int_196047615); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__28);
  __Pyx_GIVEREF(__pyx_tuple__28);
  __pyx_tuple__29 = PyTuple_Pack(3, __pyx_int_95048614, __pyx_int_118435233, __pyx_int_8455662); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);
  __pyx_tuple__30 = PyTuple_Pack(3, __pyx_int_14975952, __pyx_int_150816533, __pyx_int_103203137); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);
  __pyx_tuple__31 = PyTuple_Pack(3, __pyx_int_169112353, __pyx_int_8089851, __pyx_int_131487801); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);
  __pyx_tuple__32 = PyTuple_Pack(3, __pyx_int_178322785, __pyx_int_38339493, __pyx_int_9011761); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);
  __pyx_tuple__33 = PyTuple_Pack(3, __pyx_int_254343081, __pyx_int_160593119, __pyx_int_14011399); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);
  __pyx_tuple__34 = PyTuple_Pack(3, __pyx_int_134779209, __pyx_int_155011743, __pyx_int_93234418); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);
  __pyx_tuple__35 = PyTuple_Pack(3, __pyx_int_258104651, __pyx_int_121669262, __pyx_int_134697328); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);
  __pyx_tuple__36 = PyTuple_Pack(3, __pyx_int_238530126, __pyx_int_135827999, __pyx_int_36267824); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);
  __pyx_tuple__37 = PyTuple_Pack(3, __pyx_int_138134742, __pyx_int_171232032, __pyx_int_99923986); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);
  __pyx_tuple__38 = PyTuple_Pack(3, __pyx_int_237498805, __pyx_int_235111476, __pyx_int_22572774); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
  __pyx_tuple__39 = PyTuple_Pack(3, __pyx_int_166068038, __pyx_int_120077725, __pyx_int_105646596); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);
  __pyx_tuple__40 = PyTuple_Pack(3, __pyx_int_153277992, __pyx_int_266943092, __pyx_int_217886057); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);
  __pyx_tuple__41 = PyTuple_Pack(3, __pyx_int_152846879, __pyx_int_90560465, __pyx_int_29168483); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);
  __pyx_tuple__42 = PyTuple_Pack(3, __pyx_int_61524905, __pyx_int_255539553, __pyx_int_266373226); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);
  __pyx_tuple__43 = PyTuple_Pack(3, __pyx_int_108802371, __pyx_int_48941122, __pyx_int_150399202); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);
  __pyx_tuple__44 = PyTuple_Pack(3, __pyx_int_148272179, __pyx_int_241904987, __pyx_int_94252077); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);
  __pyx_tuple__45 = PyTuple_Pack(3, __pyx_int_35949077, __pyx_int_62874594, __pyx_int_127565017); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);
  __pyx_tuple__46 = PyTuple_Pack(3, __pyx_int_180736322, __pyx_int_10165065, __pyx_int_39153840); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
  __pyx_tuple__47 = PyTuple_Pack(3, __pyx_int_105786433, __pyx_int_146847058, __pyx_int_35482709); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);
  __pyx_tuple__48 = PyTuple_Pack(3, __pyx_int_82299867, __pyx_int_127044661, __pyx_int_43452093); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);
  __pyx_tuple__49 = PyTuple_Pack(3, __pyx_int_49475411, __pyx_int_44313570, __pyx_int_209685500); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__49);
  __Pyx_GIVEREF(__pyx_tuple__49);
  __pyx_tuple__50 = PyTuple_Pack(3, __pyx_int_83731376, __pyx_int_231905918, __pyx_int_170471409); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);
  __pyx_tuple__51 = PyTuple_Pack(3, __pyx_int_4328264, __pyx_int_81718022, __pyx_int_147363750); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);
  __pyx_tuple__52 = PyTuple_Pack(3, __pyx_int_184566456, __pyx_int_242608964, __pyx_int_17204615); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);
  __pyx_tuple__53 = PyTuple_Pack(3, __pyx_int_233007199, __pyx_int_234936116, __pyx_int_103886015); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);
  __pyx_tuple__54 = PyTuple_Pack(3, __pyx_int_190776647, __pyx_int_27861694, __pyx_int_29803235); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);
  __pyx_tuple__55 = PyTuple_Pack(3, __pyx_int_143031090, __pyx_int_56550309, __pyx_int_150798460); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);
  __pyx_tuple__56 = PyTuple_Pack(3, __pyx_int_83943461, __pyx_int_227304315, __pyx_int_236300599); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);
  __pyx_tuple__57 = PyTuple_Pack(3, __pyx_int_188214648, __pyx_int_244411994, __pyx_int_38153256); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);
  __pyx_tuple__58 = PyTuple_Pack(3, __pyx_int_100967284, __pyx_int_33150030, __pyx_int_263863157); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);
  __pyx_tuple__59 = PyTuple_Pack(3, __pyx_int_123870349, __pyx_int_173110512, __pyx_int_14828874); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);
  __pyx_tuple__60 = PyTuple_Pack(3, __pyx_int_149852974, __pyx_int_174562005, __pyx_int_60215003); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);
  __pyx_tuple__61 = PyTuple_Pack(3, __pyx_int_57753464, __pyx_int_140324773, __pyx_int_165472083); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);
  __pyx_tuple__62 = PyTuple_Pack(3, __pyx_int_117047762, __pyx_int_177559970, __pyx_int_263069812); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);
  __pyx_tuple__63 = PyTuple_Pack(3, __pyx_int_246568357, __pyx_int_25414310, __pyx_int_213175882); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);
  __pyx_tuple__64 = PyTuple_Pack(3, __pyx_int_58026155, __pyx_int_97846830, __pyx_int_56324287); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);
  __pyx_tuple__65 = PyTuple_Pack(3, __pyx_int_150941660, __pyx_int_109999513, __pyx_int_178981920); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);
  __pyx_tuple__66 = PyTuple_Pack(3, __pyx_int_19846739, __pyx_int_158694560, __pyx_int_90806753); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);
  __pyx_tuple__67 = PyTuple_Pack(3, __pyx_int_93173464, __pyx_int_28216571, __pyx_int_193049109); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);
  __pyx_tuple__68 = PyTuple_Pack(3, __pyx_int_24494209, __pyx_int_144439432, __pyx_int_16473016); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);
  __pyx_tuple__69 = PyTuple_Pack(3, __pyx_int_246844032, __pyx_int_160277609, __pyx_int_139350794); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);
  __pyx_tuple__70 = PyTuple_Pack(3, __pyx_int_89407914, __pyx_int_202207497, __pyx_int_75984122); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);
  __pyx_tuple__71 = PyTuple_Pack(3, __pyx_int_175203516, __pyx_int_96942813, __pyx_int_136014572); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);
  __pyx_tuple__72 = PyTuple_Pack(3, __pyx_int_191989756, __pyx_int_7189371, __pyx_int_101808146); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(1, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);

  /* "pysndlib/generators.pyx":8
 * import cython
 * import random
 * import pysndlib.clm as clm             # <<<<<<<<<<<<<<
 * cimport pysndlib.clm as clm
 * import numpy as np
 */
  __pyx_tuple__73 = PyTuple_Pack(2, __pyx_n_s_pysndlib, __pyx_n_s_clm); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);

  /* "pysndlib/generators.pyx":22
 * 
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */
  __pyx_tuple__74 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_fm); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 22, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 22, __pyx_L1_error)
  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_tuple__77 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_state, __pyx_n_s_dict_2, __pyx_n_s_use_setstate); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)
 */
  __pyx_tuple__79 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_pyx_state); if (unlikely(!__pyx_tuple__79)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":34
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 34, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 34, __pyx_L1_error)
  __pyx_tuple__82 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__82);
  __Pyx_GIVEREF(__pyx_tuple__82);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":51
 * 
 * 
 * cpdef Nssb make_nssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.
 */
  __pyx_tuple__85 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_ratio, __pyx_n_s_n); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nssb, 51, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(0, 51, __pyx_L1_error)
  __pyx_tuple__87 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);

  /* "pysndlib/generators.pyx":62
 * 
 * 
 * cpdef cython.double nssb(Nssb gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio.
 */
  __pyx_tuple__88 = PyTuple_Pack(2, __pyx_n_s_gen, __pyx_n_s_fm); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);
  __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nssb, 62, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(0, 62, __pyx_L1_error)
  __pyx_tuple__90 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__90);
  __Pyx_GIVEREF(__pyx_tuple__90);

  /* "pysndlib/generators.pyx":73
 * 
 * 
 * cpdef cython.bint is_nssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nssb
 */
  __pyx_tuple__91 = PyTuple_Pack(1, __pyx_n_s_gen); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nssb, 73, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(0, 73, __pyx_L1_error)

  /* "pysndlib/generators.pyx":84
 * # --------------- nxysin ---------------- #
 * 
 * def nodds(x, n):             # <<<<<<<<<<<<<<
 *     den = sin(x)
 *     num = sin(n * x)
 */
  __pyx_tuple__93 = PyTuple_Pack(4, __pyx_n_s_x, __pyx_n_s_n, __pyx_n_s_den, __pyx_n_s_num); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 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_src_pysndlib_generators_pyx, __pyx_n_s_nodds, 84, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(0, 84, __pyx_L1_error)

  /* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */
  __pyx_tuple__95 = PyTuple_Pack(8, __pyx_n_s_n, __pyx_n_s_ratio, __pyx_n_s_ns, __pyx_n_s_ns, __pyx_n_s_find_mid_max, __pyx_n_s_find_mid_max, __pyx_n_s_find_nodds_mid_max, __pyx_n_s_find_nodds_mid_max); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);
  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 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_src_pysndlib_generators_pyx, __pyx_n_s_find_nxysin_max, 92, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(0, 92, __pyx_L1_error)

  /* "pysndlib/generators.pyx":143
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 143, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(0, 143, __pyx_L1_error)
  __pyx_tuple__98 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":158
 * 
 * 
 * cpdef Nxysin make_nxysin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nxysin, 158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(0, 158, __pyx_L1_error)
  __pyx_tuple__102 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(0, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);

  /* "pysndlib/generators.pyx":170
 *     return Nxysin(frequency, ratio, n)
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sines from frequency spaced by frequency * ratio.
 */
  __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nxysin, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(0, 170, __pyx_L1_error)
  __pyx_tuple__104 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(0, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);

  /* "pysndlib/generators.pyx":181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxysin
 */
  __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nxysin, 181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(0, 181, __pyx_L1_error)

  /* "pysndlib/generators.pyx":201
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(0, 201, __pyx_L1_error)
  __pyx_tuple__107 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":215
 * 
 * 
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)
 */
  __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nxycos, 215, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(0, 215, __pyx_L1_error)
  __pyx_tuple__111 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);

  /* "pysndlib/generators.pyx":219
 *     return Nxycos(frequency, ratio, n)
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nxycos, 219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(0, 219, __pyx_L1_error)
  __pyx_tuple__113 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);

  /* "pysndlib/generators.pyx":229
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxycos
 */
  __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nxycos, 229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(0, 229, __pyx_L1_error)

  /* "pysndlib/generators.pyx":249
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(0, 249, __pyx_L1_error)
  __pyx_tuple__116 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":264
 * 
 * 
 * cpdef cython.double make_nxy1cos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nxy1cos, 264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(0, 264, __pyx_L1_error)
  __pyx_tuple__120 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__120)) __PYX_ERR(0, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__120);
  __Pyx_GIVEREF(__pyx_tuple__120);

  /* "pysndlib/generators.pyx":273
 * 
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nxy1cos, 273, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(0, 273, __pyx_L1_error)
  __pyx_tuple__122 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__122)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__122);
  __Pyx_GIVEREF(__pyx_tuple__122);

  /* "pysndlib/generators.pyx":283
 * 
 * 
 * cpdef cython.bint is_nxy1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1cos
 */
  __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nxy1cos, 283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(0, 283, __pyx_L1_error)

  /* "pysndlib/generators.pyx":304
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(0, 304, __pyx_L1_error)
  __pyx_tuple__125 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":317
 * 
 * 
 * cpdef Nxy1sin make_nxy1sin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nxy1sin, 317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(0, 317, __pyx_L1_error)
  __pyx_tuple__129 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__129);
  __Pyx_GIVEREF(__pyx_tuple__129);

  /* "pysndlib/generators.pyx":325
 * 
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nxy1sin, 325, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(0, 325, __pyx_L1_error)
  __pyx_tuple__131 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__131);
  __Pyx_GIVEREF(__pyx_tuple__131);

  /* "pysndlib/generators.pyx":335
 * 
 * 
 * cpdef cython.bint is_nxy1sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1sin
 */
  __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nxy1sin, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(0, 335, __pyx_L1_error)

  /* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */
  __pyx_tuple__133 = PyTuple_Pack(3, __pyx_n_s_n, __pyx_n_s_find_mid_max, __pyx_n_s_find_mid_max); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__133);
  __Pyx_GIVEREF(__pyx_tuple__133);
  __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_find_noddsin_max, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(0, 347, __pyx_L1_error)

  /* "pysndlib/generators.pyx":378
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 */
  __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 378, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(0, 378, __pyx_L1_error)
  __pyx_tuple__136 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(0, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__136);
  __Pyx_GIVEREF(__pyx_tuple__136);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":392
 * 
 * 
 * cpdef Noddsin make_noddsin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 */
  __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_noddsin, 392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(0, 392, __pyx_L1_error)
  __pyx_tuple__140 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__140);
  __Pyx_GIVEREF(__pyx_tuple__140);

  /* "pysndlib/generators.pyx":399
 * 
 * 
 * cpdef cython.double noddsin(Noddsin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */
  __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_noddsin, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(0, 399, __pyx_L1_error)
  __pyx_tuple__142 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__142)) __PYX_ERR(0, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__142);
  __Pyx_GIVEREF(__pyx_tuple__142);

  /* "pysndlib/generators.pyx":410
 * 
 * 
 * cpdef cython.bint is_noddsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddsin
 */
  __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_noddsin, 410, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(0, 410, __pyx_L1_error)

  /* "pysndlib/generators.pyx":431
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 */
  __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 431, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(0, 431, __pyx_L1_error)
  __pyx_tuple__145 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(0, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__145);
  __Pyx_GIVEREF(__pyx_tuple__145);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":451
 * 
 * 
 * cpdef Noddcos make_noddcos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 */
  __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_noddcos, 451, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(0, 451, __pyx_L1_error)
  __pyx_tuple__149 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(0, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__149);
  __Pyx_GIVEREF(__pyx_tuple__149);

  /* "pysndlib/generators.pyx":457
 *     return Noddcos(frequency, ratio, n)
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */
  __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_noddcos, 457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(0, 457, __pyx_L1_error)
  __pyx_tuple__151 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(0, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__151);
  __Pyx_GIVEREF(__pyx_tuple__151);

  /* "pysndlib/generators.pyx":467
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_noddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddcos
 */
  __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_noddcos, 467, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(0, 467, __pyx_L1_error)

  /* "pysndlib/generators.pyx":488
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 488, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(0, 488, __pyx_L1_error)
  __pyx_tuple__154 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__154);
  __Pyx_GIVEREF(__pyx_tuple__154);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":507
 * 
 * 
 * cpdef Noddssb make_noddssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 */
  __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_noddssb, 507, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(0, 507, __pyx_L1_error)
  __pyx_tuple__158 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_int_1); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__158);
  __Pyx_GIVEREF(__pyx_tuple__158);

  /* "pysndlib/generators.pyx":514
 * 
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns n sinusoids from frequency spaced by 2 * ratio * frequency.
 */
  __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_noddssb, 514, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(0, 514, __pyx_L1_error)
  __pyx_tuple__160 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(0, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__160);
  __Pyx_GIVEREF(__pyx_tuple__160);

  /* "pysndlib/generators.pyx":525
 * 
 * 
 * cpdef cython.bint is_noddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddssb
 */
  __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_noddssb, 525, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(0, 525, __pyx_L1_error)

  /* "pysndlib/generators.pyx":545
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 */
  __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(0, 545, __pyx_L1_error)
  __pyx_tuple__163 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__163);
  __Pyx_GIVEREF(__pyx_tuple__163);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)
 */
  __pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":560
 * 
 * 
 * cpdef Ncos2 make_ncos2(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 */
  __pyx_tuple__166 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_n); if (unlikely(!__pyx_tuple__166)) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__166);
  __Pyx_GIVEREF(__pyx_tuple__166);
  __pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_ncos2, 560, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(0, 560, __pyx_L1_error)
  __pyx_tuple__168 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__168);
  __Pyx_GIVEREF(__pyx_tuple__168);

  /* "pysndlib/generators.pyx":567
 * 
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ncos2, 567, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(0, 567, __pyx_L1_error)
  __pyx_tuple__170 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__170);
  __Pyx_GIVEREF(__pyx_tuple__170);

  /* "pysndlib/generators.pyx":578
 * 
 * 
 * cpdef cython.bint is_ncos2(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos2
 */
  __pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_ncos2, 578, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(0, 578, __pyx_L1_error)

  /* "pysndlib/generators.pyx":591
 * cdef class Ncos4(Ncos2):
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val
 */
  __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 591, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(0, 591, __pyx_L1_error)
  __pyx_tuple__173 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__173);
  __Pyx_GIVEREF(__pyx_tuple__173);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)
 */
  __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":596
 * 
 * 
 * cpdef Ncos4 make_ncos4(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 */
  __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_ncos4, 596, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(0, 596, __pyx_L1_error)

  /* "pysndlib/generators.pyx":603
 * 
 * 
 * cpdef cython.double ncos4(Ncos4 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ncos4, 603, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(0, 603, __pyx_L1_error)
  __pyx_tuple__178 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__178);
  __Pyx_GIVEREF(__pyx_tuple__178);

  /* "pysndlib/generators.pyx":614
 * 
 * 
 * cpdef cython.bint is_ncos4(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos4
 */
  __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_ncos4, 614, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(0, 614, __pyx_L1_error)

  /* "pysndlib/generators.pyx":632
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 */
  __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(0, 632, __pyx_L1_error)
  __pyx_tuple__181 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__181)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__181);
  __Pyx_GIVEREF(__pyx_tuple__181);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":655
 * 
 * 
 * cpdef Npcos make_npcos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an npcos (Poussin kernel) generator that produces
 */
  __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_npcos, 655, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(0, 655, __pyx_L1_error)

  /* "pysndlib/generators.pyx":663
 * 
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.
 */
  __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_npcos, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(0, 663, __pyx_L1_error)
  __pyx_tuple__186 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__186);
  __Pyx_GIVEREF(__pyx_tuple__186);

  /* "pysndlib/generators.pyx":674
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npcos
 */
  __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_npcos, 674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(0, 674, __pyx_L1_error)

  /* "pysndlib/generators.pyx":695
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 */
  __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 695, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(0, 695, __pyx_L1_error)
  __pyx_tuple__189 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__189)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__189);
  __Pyx_GIVEREF(__pyx_tuple__189);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)
 */
  __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":709
 * 
 * 
 * cpdef Ncos5 make_ncos5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'.
 */
  __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_ncos5, 709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(0, 709, __pyx_L1_error)

  /* "pysndlib/generators.pyx":717
 * 
 * 
 * cpdef cython.double ncos5(gen: Ncos5, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency. All are equal amplitude except the first and last at half amp
 */
  __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ncos5, 717, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(0, 717, __pyx_L1_error)
  __pyx_tuple__194 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__194)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__194);
  __Pyx_GIVEREF(__pyx_tuple__194);

  /* "pysndlib/generators.pyx":728
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ncos5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos5
 */
  __pyx_codeobj__195 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_ncos5, 728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(0, 728, __pyx_L1_error)

  /* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */
  __pyx_tuple__196 = PyTuple_Pack(5, __pyx_n_s_n, __pyx_n_s_ns, __pyx_n_s_ns, __pyx_n_s_find_mid_max, __pyx_n_s_find_mid_max); if (unlikely(!__pyx_tuple__196)) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__196);
  __Pyx_GIVEREF(__pyx_tuple__196);
  __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_find_nsin5_max, 740, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(0, 740, __pyx_L1_error)

  /* "pysndlib/generators.pyx":772
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 */
  __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 772, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(0, 772, __pyx_L1_error)
  __pyx_tuple__199 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__199)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__199);
  __Pyx_GIVEREF(__pyx_tuple__199);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)
 */
  __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":787
 * 
 * 
 * cpdef Nsin5 make_nsin5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'.
 */
  __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nsin5, 787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(0, 787, __pyx_L1_error)

  /* "pysndlib/generators.pyx":794
 *     return Nsin5(frequency, n)
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: noddssb gen
 */
  __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nsin5, 794, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(0, 794, __pyx_L1_error)
  __pyx_tuple__204 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__204);
  __Pyx_GIVEREF(__pyx_tuple__204);

  /* "pysndlib/generators.pyx":803
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsin5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsin5
 */
  __pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nsin5, 803, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 803, __pyx_L1_error)

  /* "pysndlib/generators.pyx":815
 * # --------------- nrsin ---------------- #
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 */
  __pyx_tuple__206 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_n, __pyx_n_s_r); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__206);
  __Pyx_GIVEREF(__pyx_tuple__206);
  __pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nrsin, 815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_tuple__208 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__208);
  __Pyx_GIVEREF(__pyx_tuple__208);

  /* "pysndlib/generators.pyx":818
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nrsin gen
 */
  __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nrsin, 818, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(0, 818, __pyx_L1_error)
  __pyx_tuple__210 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__210);
  __Pyx_GIVEREF(__pyx_tuple__210);

  /* "pysndlib/generators.pyx":826
 *     return clm.nrxysin(gen, fm)
 * 
 * cpdef cython.bint is_nrsin(gen):             # <<<<<<<<<<<<<<
 *     return clm.is_nrxysin(gen)
 * # --------------- nrcos ---------------- #
 */
  __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nrsin, 826, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 826, __pyx_L1_error)

  /* "pysndlib/generators.pyx":846
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 */
  __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 846, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(0, 846, __pyx_L1_error)
  __pyx_tuple__213 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__213);
  __Pyx_GIVEREF(__pyx_tuple__213);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":894
 * 
 * 
 * cpdef Nrcos make_nrcos(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrcos generator that produces 'n' cosines
 */
  __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nrcos, 894, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(0, 894, __pyx_L1_error)
  __pyx_tuple__217 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__217);
  __Pyx_GIVEREF(__pyx_tuple__217);

  /* "pysndlib/generators.pyx":901
 *     return Nrcos(frequency, n, r)
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency with amplitudes scaled by r^k.
 */
  __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nrcos, 901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(0, 901, __pyx_L1_error)
  __pyx_tuple__219 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__219);
  __Pyx_GIVEREF(__pyx_tuple__219);

  /* "pysndlib/generators.pyx":911
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nrcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrcos
 */
  __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nrcos, 911, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(0, 911, __pyx_L1_error)

  /* "pysndlib/generators.pyx":936
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(0, 936, __pyx_L1_error)
  __pyx_tuple__222 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__222);
  __Pyx_GIVEREF(__pyx_tuple__222);

  /* "pysndlib/generators.pyx":951
 * 
 * 
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_tuple__223 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_fm, __pyx_n_s_interp); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__223);
  __Pyx_GIVEREF(__pyx_tuple__223);
  __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_call_interp, 951, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(0, 951, __pyx_L1_error)
  __pyx_tuple__225 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__225)) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__225);
  __Pyx_GIVEREF(__pyx_tuple__225);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":964
 * 
 * 
 * cpdef Nrssb make_nrssb(frequency=0, ratio=1.0, n=1, r=.5) :             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrssb generator that produces returns n sinusoids from
 */
  __pyx_tuple__228 = PyTuple_Pack(4, __pyx_n_s_frequency, __pyx_n_s_ratio, __pyx_n_s_n, __pyx_n_s_r); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__228);
  __Pyx_GIVEREF(__pyx_tuple__228);
  __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nrssb, 964, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(0, 964, __pyx_L1_error)
  __pyx_tuple__230 = PyTuple_Pack(4, __pyx_int_0, __pyx_float_1_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__230);
  __Pyx_GIVEREF(__pyx_tuple__230);

  /* "pysndlib/generators.pyx":971
 *     return Nrssb(frequency, ratio, n, r)
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 * 
 */
  __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nrssb, 971, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(0, 971, __pyx_L1_error)
  __pyx_tuple__232 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(0, 971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__232);
  __Pyx_GIVEREF(__pyx_tuple__232);

  /* "pysndlib/generators.pyx":981
 *     return gen.next(fm)
 * 
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=0.,cython.double interp =0. ):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 */
  __pyx_tuple__233 = PyTuple_Pack(3, __pyx_n_s_gen, __pyx_n_s_fm, __pyx_n_s_interp); if (unlikely(!__pyx_tuple__233)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__233);
  __Pyx_GIVEREF(__pyx_tuple__233);
  __pyx_codeobj__234 = (PyObject*)__Pyx_PyCode_New(3, 0, 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_src_pysndlib_generators_pyx, __pyx_n_s_nrssb_interp, 981, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__234)) __PYX_ERR(0, 981, __pyx_L1_error)
  __pyx_tuple__235 = PyTuple_Pack(2, __pyx_float_0_, __pyx_float_0_); if (unlikely(!__pyx_tuple__235)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__235);
  __Pyx_GIVEREF(__pyx_tuple__235);

  /* "pysndlib/generators.pyx":991
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_nrssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrssb
 */
  __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nrssb, 991, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(0, 991, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1013
 *         self.interp = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */
  __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1013, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(0, 1013, __pyx_L1_error)
  __pyx_tuple__238 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__238);
  __Pyx_GIVEREF(__pyx_tuple__238);

  /* "pysndlib/generators.pyx":1031
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */
  __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_call_interp, 1031, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __pyx_tuple__240 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__240);
  __Pyx_GIVEREF(__pyx_tuple__240);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1061
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nkssb generator that produces n sinusoids from
 */
  __pyx_codeobj__243 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_make_nkssb, 1061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__243)) __PYX_ERR(0, 1061, __pyx_L1_error)
  __pyx_tuple__244 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_int_1); if (unlikely(!__pyx_tuple__244)) __PYX_ERR(0, 1061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__244);
  __Pyx_GIVEREF(__pyx_tuple__244);

  /* "pysndlib/generators.pyx":1068
 *     return Nkssb(frequency, ratio, n)
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n sinusoids from frequency spaced by frequency * ratio with amplitude k
 */
  __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nkssb, 1068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __pyx_tuple__246 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__246)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__246);
  __Pyx_GIVEREF(__pyx_tuple__246);

  /* "pysndlib/generators.pyx":1079
 *     return gen.next(fm)
 * 
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=0., cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio
 */
  __pyx_codeobj__247 = (PyObject*)__Pyx_PyCode_New(3, 0, 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_src_pysndlib_generators_pyx, __pyx_n_s_nkssb_interp, 1079, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__247)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __pyx_tuple__248 = PyTuple_Pack(2, __pyx_float_0_, __pyx_float_0_0); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__248);
  __Pyx_GIVEREF(__pyx_tuple__248);

  /* "pysndlib/generators.pyx":1087
 *     return gen.call_interp(fm, interp)
 * 
 * cpdef cython.bint is_nkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nkssb
 */
  __pyx_codeobj__249 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nkssb, 1087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__249)) __PYX_ERR(0, 1087, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1113
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 */
  __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1113, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __pyx_tuple__251 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__251);
  __Pyx_GIVEREF(__pyx_tuple__251);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1124
 * 
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     return Nsincos(frequency, n)
 * 
 */
  __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nsincos, 1124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(0, 1124, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1127
 *     return Nsincos(frequency, n)
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nsincos gen
 */
  __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nsincos, 1127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __pyx_tuple__256 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__256);
  __Pyx_GIVEREF(__pyx_tuple__256);

  /* "pysndlib/generators.pyx":1135
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsincos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsincos
 */
  __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nsincos, 1135, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(0, 1135, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1155
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 */
  __pyx_codeobj__258 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1155, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__258)) __PYX_ERR(0, 1155, __pyx_L1_error)
  __pyx_tuple__259 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__259)) __PYX_ERR(0, 1155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__259);
  __Pyx_GIVEREF(__pyx_tuple__259);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__260 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__260)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1167
 *         return self.next(fm)
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 */
  __pyx_codeobj__262 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_n1cos, 1167, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__262)) __PYX_ERR(0, 1167, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1173
 *     return N1cos(frequency, n)
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: n1cos gen
 */
  __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_n1cos, 1173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __pyx_tuple__264 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__264);
  __Pyx_GIVEREF(__pyx_tuple__264);

  /* "pysndlib/generators.pyx":1181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_n1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an n1cos
 */
  __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_n1cos, 1181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(0, 1181, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1200
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 */
  __pyx_codeobj__266 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1200, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__266)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __pyx_tuple__267 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__267)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__267);
  __Pyx_GIVEREF(__pyx_tuple__267);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__268 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__268)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__269 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__269)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1216
 *         return self.next(fm)
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsincos generator that produces n cosines spaced
 */
  __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_npos1cos, 1216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(0, 1216, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1223
 *     return Npos1cos(frequency, n)
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))
 */
  __pyx_codeobj__271 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_npos1cos, 1223, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__271)) __PYX_ERR(0, 1223, __pyx_L1_error)
  __pyx_tuple__272 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__272)) __PYX_ERR(0, 1223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__272);
  __Pyx_GIVEREF(__pyx_tuple__272);

  /* "pysndlib/generators.pyx":1233
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos1cos
 */
  __pyx_codeobj__273 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_npos1cos, 1233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__273)) __PYX_ERR(0, 1233, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1252
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 */
  __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1252, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __pyx_tuple__275 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__275);
  __Pyx_GIVEREF(__pyx_tuple__275);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__277 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__277)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1266
 *         return self.next(fm)
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 */
  __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_npos3cos, 1266, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(0, 1266, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1272
 *     return Npos3cos(frequency, n)
 * 
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency
 */
  __pyx_codeobj__279 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_npos3cos, 1272, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__279)) __PYX_ERR(0, 1272, __pyx_L1_error)
  __pyx_tuple__280 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__280)) __PYX_ERR(0, 1272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__280);
  __Pyx_GIVEREF(__pyx_tuple__280);

  /* "pysndlib/generators.pyx":1282
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos3cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos3cos
 */
  __pyx_codeobj__281 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_npos3cos, 1282, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__281)) __PYX_ERR(0, 1282, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1306
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm
 * 
 */
  __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1306, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(0, 1306, __pyx_L1_error)
  __pyx_tuple__283 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(0, 1306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__283);
  __Pyx_GIVEREF(__pyx_tuple__283);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__285 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__285)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1336
 * 
 * 
 * cpdef Rcos make_rcos(frequency=0, r=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 */
  __pyx_tuple__286 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_r); if (unlikely(!__pyx_tuple__286)) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__286);
  __Pyx_GIVEREF(__pyx_tuple__286);
  __pyx_codeobj__287 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rcos, 1336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__287)) __PYX_ERR(0, 1336, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1342
 *     return Rcos(frequency, r)
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude r^k
 */
  __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rcos, 1342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(0, 1342, __pyx_L1_error)
  __pyx_tuple__289 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__289)) __PYX_ERR(0, 1342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__289);
  __Pyx_GIVEREF(__pyx_tuple__289);

  /* "pysndlib/generators.pyx":1353
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rcos
 */
  __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rcos, 1353, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(0, 1353, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1373
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
  __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1373, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(0, 1373, __pyx_L1_error)
  __pyx_tuple__292 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(0, 1373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__292);
  __Pyx_GIVEREF(__pyx_tuple__292);

  /* "pysndlib/generators.pyx":1384
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.double angle1 = self.angle
 */
  __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 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_src_pysndlib_generators_pyx, __pyx_n_s_call_interp, 1384, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(0, 1384, __pyx_L1_error)
  __pyx_tuple__294 = PyTuple_Pack(2, __pyx_float_0_0, __pyx_float_0_0); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(0, 1384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__294);
  __Pyx_GIVEREF(__pyx_tuple__294);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__296 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__296)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1409
 * 
 * 
 * cpdef Rssb make_rssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 */
  __pyx_tuple__297 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_ratio, __pyx_n_s_r); if (unlikely(!__pyx_tuple__297)) __PYX_ERR(0, 1409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__297);
  __Pyx_GIVEREF(__pyx_tuple__297);
  __pyx_codeobj__298 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rssb, 1409, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__298)) __PYX_ERR(0, 1409, __pyx_L1_error)
  __pyx_tuple__299 = PyTuple_Pack(2, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__299)) __PYX_ERR(0, 1409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__299);
  __Pyx_GIVEREF(__pyx_tuple__299);

  /* "pysndlib/generators.pyx":1415
 *     return Rssb(frequency, ratio, r)
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio with amplitude r^k."""
 *     return gen.next(fm)
 */
  __pyx_codeobj__300 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rssb, 1415, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__300)) __PYX_ERR(0, 1415, __pyx_L1_error)
  __pyx_tuple__301 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__301)) __PYX_ERR(0, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__301);
  __Pyx_GIVEREF(__pyx_tuple__301);

  /* "pysndlib/generators.pyx":1419
 *     return gen.next(fm)
 * 
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=0., cython.double interp=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio
 *     with amplitude r^k. The 'interp' argument determines whether the sidebands
 */
  __pyx_codeobj__302 = (PyObject*)__Pyx_PyCode_New(3, 0, 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_src_pysndlib_generators_pyx, __pyx_n_s_rssb_interp, 1419, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__302)) __PYX_ERR(0, 1419, __pyx_L1_error)
  __pyx_tuple__303 = PyTuple_Pack(2, __pyx_float_0_, __pyx_float_0_); if (unlikely(!__pyx_tuple__303)) __PYX_ERR(0, 1419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__303);
  __Pyx_GIVEREF(__pyx_tuple__303);

  /* "pysndlib/generators.pyx":1431
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_rssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rssb
 */
  __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rssb, 1431, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(0, 1431, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1454
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_codeobj__305 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__305)) __PYX_ERR(0, 1454, __pyx_L1_error)
  __pyx_tuple__306 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__306)) __PYX_ERR(0, 1454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__306);
  __Pyx_GIVEREF(__pyx_tuple__306);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__307 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__307)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__308 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__308)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1474
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 */
  __pyx_codeobj__309 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rxysin, 1474, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__309)) __PYX_ERR(0, 1474, __pyx_L1_error)
  __pyx_tuple__310 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__310)) __PYX_ERR(0, 1474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__310);
  __Pyx_GIVEREF(__pyx_tuple__310);

  /* "pysndlib/generators.pyx":1480
 *     return Rxysin(frequency, ratio, r)
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * ratio with amplitude r^k.
 */
  __pyx_codeobj__311 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rxysin, 1480, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__311)) __PYX_ERR(0, 1480, __pyx_L1_error)
  __pyx_tuple__312 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__312)) __PYX_ERR(0, 1480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__312);
  __Pyx_GIVEREF(__pyx_tuple__312);

  /* "pysndlib/generators.pyx":1491
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxysin
 */
  __pyx_codeobj__313 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rxysin, 1491, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__313)) __PYX_ERR(0, 1491, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1515
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(0, 1515, __pyx_L1_error)
  __pyx_tuple__315 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(0, 1515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__315);
  __Pyx_GIVEREF(__pyx_tuple__315);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__316 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__316)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1534
 * 
 * 
 * cpdef Rxycos make_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxycos generator that produces many cosines
 */
  __pyx_codeobj__318 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rxycos, 1534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__318)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __pyx_tuple__319 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__319)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__319);
  __Pyx_GIVEREF(__pyx_tuple__319);

  /* "pysndlib/generators.pyx":1541
 *     return Rxycos(frequency, ratio, r)
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.
 */
  __pyx_codeobj__320 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rxycos, 1541, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__320)) __PYX_ERR(0, 1541, __pyx_L1_error)
  __pyx_tuple__321 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__321)) __PYX_ERR(0, 1541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__321);
  __Pyx_GIVEREF(__pyx_tuple__321);

  /* "pysndlib/generators.pyx":1551
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxycos
 */
  __pyx_codeobj__322 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rxycos, 1551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__322)) __PYX_ERR(0, 1551, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1574
 * 
 * 
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:
 */
  __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_clamp_rxycos_r, 1574, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(0, 1574, __pyx_L1_error)
  __pyx_tuple__324 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__324)) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__324);
  __Pyx_GIVEREF(__pyx_tuple__324);

  /* "pysndlib/generators.pyx":1582
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1582, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(0, 1582, __pyx_L1_error)
  __pyx_tuple__326 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__326)) __PYX_ERR(0, 1582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__326);
  __Pyx_GIVEREF(__pyx_tuple__326);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__327 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__327)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1624
 * 
 * 
 * cpdef SafeRxycos make_safe_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a safe-rxycos generator that produces many cosines from
 */
  __pyx_codeobj__329 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_safe_rxycos, 1624, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__329)) __PYX_ERR(0, 1624, __pyx_L1_error)
  __pyx_tuple__330 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__330)) __PYX_ERR(0, 1624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__330);
  __Pyx_GIVEREF(__pyx_tuple__330);

  /* "pysndlib/generators.pyx":1631
 *     return SafeRxycos(frequency, ratio, r)
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.
 */
  __pyx_codeobj__331 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_safe_rxycos, 1631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__331)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __pyx_tuple__332 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__332)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__332);
  __Pyx_GIVEREF(__pyx_tuple__332);

  /* "pysndlib/generators.pyx":1641
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_safe_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an safe_rxycos
 */
  __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_safe_rxycos, 1641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(0, 1641, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1665
 *         self.scaler = sinh(self.r) * self.offset
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 */
  __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1665, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(0, 1665, __pyx_L1_error)
  __pyx_tuple__335 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(0, 1665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__335);
  __Pyx_GIVEREF(__pyx_tuple__335);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__336 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__336)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1688
 * 
 * 
 * cpdef Ercos make_ercos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an ercos generator (a special case of rcos) that produces
 */
  __pyx_codeobj__338 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_ercos, 1688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__338)) __PYX_ERR(0, 1688, __pyx_L1_error)
  __pyx_tuple__339 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__339)) __PYX_ERR(0, 1688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__339);
  __Pyx_GIVEREF(__pyx_tuple__339);

  /* "pysndlib/generators.pyx":1695
 *     return Ercos(frequency, r)
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency with amplitude e^(-kr).
 */
  __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_ercos, 1695, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(0, 1695, __pyx_L1_error)
  __pyx_tuple__341 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__341)) __PYX_ERR(0, 1695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__341);
  __Pyx_GIVEREF(__pyx_tuple__341);

  /* "pysndlib/generators.pyx":1705
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ercos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ercos
 */
  __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_ercos, 1705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(0, 1705, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1726
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__343 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1726, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__343)) __PYX_ERR(0, 1726, __pyx_L1_error)
  __pyx_tuple__344 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__344)) __PYX_ERR(0, 1726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__344);
  __Pyx_GIVEREF(__pyx_tuple__344);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1742
 * 
 * 
 * cpdef Erssb make_erssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an erssb generator (a special case of rssb) the produces
 */
  __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_erssb, 1742, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(0, 1742, __pyx_L1_error)
  __pyx_tuple__348 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_float__5); if (unlikely(!__pyx_tuple__348)) __PYX_ERR(0, 1742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__348);
  __Pyx_GIVEREF(__pyx_tuple__348);

  /* "pysndlib/generators.pyx":1749
 *     return Erssb(frequency, ratio, r)
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).
 */
  __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_erssb, 1749, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(0, 1749, __pyx_L1_error)
  __pyx_tuple__350 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__350)) __PYX_ERR(0, 1749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__350);
  __Pyx_GIVEREF(__pyx_tuple__350);

  /* "pysndlib/generators.pyx":1760
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_erssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an erssb
 */
  __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_erssb, 1760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(0, 1760, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1787
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 */
  __pyx_codeobj__352 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__352)) __PYX_ERR(0, 1787, __pyx_L1_error)
  __pyx_tuple__353 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__353)) __PYX_ERR(0, 1787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__353);
  __Pyx_GIVEREF(__pyx_tuple__353);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1795
 *         return self.next(fm)
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2sin generator that produces many even-numbered
 */
  __pyx_codeobj__356 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_r2cos, 1795, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(0, 1795, __pyx_L1_error)
  __pyx_tuple__357 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__357)) __PYX_ERR(0, 1795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__357);
  __Pyx_GIVEREF(__pyx_tuple__357);

  /* "pysndlib/generators.pyx":1802
 *     return R2cos(frequency, r)
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!.
 */
  __pyx_codeobj__358 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_r2cos, 1802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__358)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __pyx_tuple__359 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__359)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__359);
  __Pyx_GIVEREF(__pyx_tuple__359);

  /* "pysndlib/generators.pyx":1814
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2cos
 */
  __pyx_codeobj__360 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_r2cos, 1814, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__360)) __PYX_ERR(0, 1814, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1832
 *         self.r = r
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1832, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(0, 1832, __pyx_L1_error)
  __pyx_tuple__362 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__362)) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__362);
  __Pyx_GIVEREF(__pyx_tuple__362);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__363 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1845
 *         return self.next(fm)
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2ssb generator that produces many even-numbered sinusoids
 */
  __pyx_codeobj__365 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_r2ssb, 1845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__365)) __PYX_ERR(0, 1845, __pyx_L1_error)
  __pyx_tuple__366 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_float__5); if (unlikely(!__pyx_tuple__366)) __PYX_ERR(0, 1845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__366);
  __Pyx_GIVEREF(__pyx_tuple__366);

  /* "pysndlib/generators.pyx":1852
 *     return R2ssb(frequency, ratio, r)
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sinusoids from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.
 */
  __pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_r2ssb, 1852, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(0, 1852, __pyx_L1_error)
  __pyx_tuple__368 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__368)) __PYX_ERR(0, 1852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__368);
  __Pyx_GIVEREF(__pyx_tuple__368);

  /* "pysndlib/generators.pyx":1862
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2ssb
 */
  __pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_r2ssb, 1862, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(0, 1862, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1882
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 */
  __pyx_codeobj__370 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1882, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(0, 1882, __pyx_L1_error)
  __pyx_tuple__371 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__371)) __PYX_ERR(0, 1882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__371);
  __Pyx_GIVEREF(__pyx_tuple__371);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__373 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1909
 * 
 * 
 * cpdef Eoddcos make_eoddcos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an eoddcos generator that produces many cosines
 */
  __pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_eoddcos, 1909, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(0, 1909, __pyx_L1_error)
  __pyx_tuple__375 = PyTuple_Pack(2, __pyx_int_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__375)) __PYX_ERR(0, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__375);
  __Pyx_GIVEREF(__pyx_tuple__375);

  /* "pysndlib/generators.pyx":1916
 *     return Eoddcos(frequency, r)
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude e^(-r).
 */
  __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_eoddcos, 1916, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __pyx_tuple__377 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__377)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__377);
  __Pyx_GIVEREF(__pyx_tuple__377);

  /* "pysndlib/generators.pyx":1926
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_eoddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an eoddcos
 */
  __pyx_codeobj__378 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_eoddcos, 1926, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(0, 1926, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1948
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 */
  __pyx_codeobj__379 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 1948, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __pyx_tuple__380 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__380)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__380);
  __Pyx_GIVEREF(__pyx_tuple__380);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__381 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":1980
 * 
 * 
 * cpdef Rkcos make_rkcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkcos generator that produces many cosines
 */
  __pyx_codeobj__383 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rkcos, 1980, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __pyx_tuple__384 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__384)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__384);
  __Pyx_GIVEREF(__pyx_tuple__384);

  /* "pysndlib/generators.pyx":1987
 *     return Rkcos(frequency, r)
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_codeobj__385 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rkcos, 1987, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __pyx_tuple__386 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__386)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__386);
  __Pyx_GIVEREF(__pyx_tuple__386);

  /* "pysndlib/generators.pyx":1997
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkcos
 */
  __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rkcos, 1997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(0, 1997, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2015
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__388 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2015, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__388)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __pyx_tuple__389 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__389)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__389);
  __Pyx_GIVEREF(__pyx_tuple__389);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__390 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2032
 * 
 * 
 * cpdef Rksin make_rksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_codeobj__392 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rksin, 2032, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(0, 2032, __pyx_L1_error)
  __pyx_tuple__393 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__393)) __PYX_ERR(0, 2032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__393);
  __Pyx_GIVEREF(__pyx_tuple__393);

  /* "pysndlib/generators.pyx":2038
 *     return Rksin(frequency, r)
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_codeobj__394 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rksin, 2038, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __pyx_tuple__395 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__395)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__395);
  __Pyx_GIVEREF(__pyx_tuple__395);

  /* "pysndlib/generators.pyx":2049
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rksin
 */
  __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rksin, 2049, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(0, 2049, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2070
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
  __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2070, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __pyx_tuple__398 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__398)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__398);
  __Pyx_GIVEREF(__pyx_tuple__398);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__399 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__399)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2093
 * 
 * 
 * cpdef Rkssb make_rkssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkssb generator that produces many sinusoids from
 */
  __pyx_codeobj__401 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rkssb, 2093, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__401)) __PYX_ERR(0, 2093, __pyx_L1_error)
  __pyx_tuple__402 = PyTuple_Pack(2, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__402)) __PYX_ERR(0, 2093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__402);
  __Pyx_GIVEREF(__pyx_tuple__402);

  /* "pysndlib/generators.pyx":2100
 *     return Rkssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 */
  __pyx_codeobj__403 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rkssb, 2100, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__403)) __PYX_ERR(0, 2100, __pyx_L1_error)
  __pyx_tuple__404 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__404)) __PYX_ERR(0, 2100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__404);
  __Pyx_GIVEREF(__pyx_tuple__404);

  /* "pysndlib/generators.pyx":2111
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkssb
 */
  __pyx_codeobj__405 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rkssb, 2111, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__405)) __PYX_ERR(0, 2111, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2130
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(0, 2130, __pyx_L1_error)
  __pyx_tuple__407 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__407)) __PYX_ERR(0, 2130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__407);
  __Pyx_GIVEREF(__pyx_tuple__407);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__409 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__409)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2155
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfcos (rkf!os) generator that produces many
 */
  __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rkfcos, 2155, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(0, 2155, __pyx_L1_error)
  __pyx_tuple__411 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__411)) __PYX_ERR(0, 2155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__411);
  __Pyx_GIVEREF(__pyx_tuple__411);

  /* "pysndlib/generators.pyx":2162
 *     return Rkfcos(frequency, r)
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (r^k)/k!.
 */
  __pyx_codeobj__412 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rkfcos, 2162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__412)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __pyx_tuple__413 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__413)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__413);
  __Pyx_GIVEREF(__pyx_tuple__413);

  /* "pysndlib/generators.pyx":2173
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfcos
 */
  __pyx_codeobj__414 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rkfcos, 2173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__414)) __PYX_ERR(0, 2173, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2197
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__415 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__415)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __pyx_tuple__416 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__416)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__416);
  __Pyx_GIVEREF(__pyx_tuple__416);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__417 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__417)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2219
 * 
 * 
 * cpdef Rkfssb make_rkfssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */
  __pyx_codeobj__419 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rkfssb, 2219, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(0, 2219, __pyx_L1_error)
  __pyx_tuple__420 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_float__5); if (unlikely(!__pyx_tuple__420)) __PYX_ERR(0, 2219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__420);
  __Pyx_GIVEREF(__pyx_tuple__420);

  /* "pysndlib/generators.pyx":2225
 *     return Rkfssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */
  __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rkfssb, 2225, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(0, 2225, __pyx_L1_error)
  __pyx_tuple__422 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__422)) __PYX_ERR(0, 2225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__422);
  __Pyx_GIVEREF(__pyx_tuple__422);

  /* "pysndlib/generators.pyx":2235
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfssb
 */
  __pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rkfssb, 2235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(0, 2235, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2264
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 */
  __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2264, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(0, 2264, __pyx_L1_error)
  __pyx_tuple__425 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__425)) __PYX_ERR(0, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__425);
  __Pyx_GIVEREF(__pyx_tuple__425);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__426 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__426)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2287
 * 
 * 
 * cpdef R2kfcos make_r2kfcos(frequency=0, r=.5, k=.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2kfcos (r2k!cos) generator that produces many cosines
 */
  __pyx_tuple__428 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_r, __pyx_n_s_k); if (unlikely(!__pyx_tuple__428)) __PYX_ERR(0, 2287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__428);
  __Pyx_GIVEREF(__pyx_tuple__428);
  __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__428, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_r2kfcos, 2287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(0, 2287, __pyx_L1_error)
  __pyx_tuple__430 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_float__0); if (unlikely(!__pyx_tuple__430)) __PYX_ERR(0, 2287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__430);
  __Pyx_GIVEREF(__pyx_tuple__430);

  /* "pysndlib/generators.pyx":2294
 *     return R2kfcos(frequency, r, k)
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude too messy to write down.
 */
  __pyx_codeobj__431 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_r2kfcos, 2294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(0, 2294, __pyx_L1_error)
  __pyx_tuple__432 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__432)) __PYX_ERR(0, 2294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__432);
  __Pyx_GIVEREF(__pyx_tuple__432);

  /* "pysndlib/generators.pyx":2304
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2kfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2kfcos
 */
  __pyx_codeobj__433 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_r2kfcos, 2304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__433)) __PYX_ERR(0, 2304, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2326
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__434 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__434)) __PYX_ERR(0, 2326, __pyx_L1_error)
  __pyx_tuple__435 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__435)) __PYX_ERR(0, 2326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__435);
  __Pyx_GIVEREF(__pyx_tuple__435);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__436 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__436)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2334
 *         return self.next(fm)
 * 
 * cpdef K2sin make_k2sin(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a k2sin generator that produces many sines
 */
  __pyx_tuple__438 = PyTuple_Pack(1, __pyx_n_s_frequency); if (unlikely(!__pyx_tuple__438)) __PYX_ERR(0, 2334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__438);
  __Pyx_GIVEREF(__pyx_tuple__438);
  __pyx_codeobj__439 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__438, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_k2sin, 2334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__439)) __PYX_ERR(0, 2334, __pyx_L1_error)
  __pyx_tuple__440 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__440)) __PYX_ERR(0, 2334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__440);
  __Pyx_GIVEREF(__pyx_tuple__440);

  /* "pysndlib/generators.pyx":2341
 *     return K2sin(frequency)
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude 1/(2^k).
 */
  __pyx_codeobj__441 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_k2sin, 2341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__441)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __pyx_tuple__442 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__442)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__442);
  __Pyx_GIVEREF(__pyx_tuple__442);

  /* "pysndlib/generators.pyx":2351
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2sin
 */
  __pyx_codeobj__443 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_k2sin, 2351, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__443)) __PYX_ERR(0, 2351, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2371
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__444 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2371, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__444)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __pyx_tuple__445 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__445)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__445);
  __Pyx_GIVEREF(__pyx_tuple__445);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__447 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__447)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2379
 *         return self.next(fm)
 * 
 * cpdef K2cos make_k2cos(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2cos generator that produces many cosines
 */
  __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__438, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_k2cos, 2379, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(0, 2379, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2386
 *     return K2cos(frequency)
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(2^k).
 */
  __pyx_codeobj__449 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_k2cos, 2386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__449)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __pyx_tuple__450 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__450)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__450);
  __Pyx_GIVEREF(__pyx_tuple__450);

  /* "pysndlib/generators.pyx":2396
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2cos
 */
  __pyx_codeobj__451 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_k2cos, 2396, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__451)) __PYX_ERR(0, 2396, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2413
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
  __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __pyx_tuple__453 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__453)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__453);
  __Pyx_GIVEREF(__pyx_tuple__453);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__455 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__455)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2424
 * 
 * 
 * cpdef K2ssb make_k2ssb(frequency=0, ratio=1.):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2ssb generator that produces many sinusoids from
 */
  __pyx_tuple__456 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_ratio); if (unlikely(!__pyx_tuple__456)) __PYX_ERR(0, 2424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__456);
  __Pyx_GIVEREF(__pyx_tuple__456);
  __pyx_codeobj__457 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__456, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_k2ssb, 2424, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(0, 2424, __pyx_L1_error)
  __pyx_tuple__458 = PyTuple_Pack(2, __pyx_int_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__458)) __PYX_ERR(0, 2424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__458);
  __Pyx_GIVEREF(__pyx_tuple__458);

  /* "pysndlib/generators.pyx":2431
 *     return K2ssb(frequency, ratio)
 * 
 * cpdef cython.double k2ssb(gen: K2ssb, fm: cython.double = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude 1/(2^k).
 */
  __pyx_codeobj__459 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_k2ssb, 2431, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__459)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __pyx_tuple__460 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__460)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__460);
  __Pyx_GIVEREF(__pyx_tuple__460);

  /* "pysndlib/generators.pyx":2441
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2ssb
 */
  __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_k2ssb, 2441, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(0, 2441, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2460
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2460, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(0, 2460, __pyx_L1_error)
  __pyx_tuple__463 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__463)) __PYX_ERR(0, 2460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__463);
  __Pyx_GIVEREF(__pyx_tuple__463);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)
 */
  __pyx_codeobj__465 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__465)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2478
 *         self.frequency = clm.hz2radians(2*val)
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *      creates a dblsum generator that produces many sines from frequency
 */
  __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_dblsum, 2478, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(0, 2478, __pyx_L1_error)
  __pyx_tuple__467 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__467)) __PYX_ERR(0, 2478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__467);
  __Pyx_GIVEREF(__pyx_tuple__467);

  /* "pysndlib/generators.pyx":2485
 *     return Dblsum(frequency, r)
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * (2k -1) with amplitude r^k (this is buggy)
 */
  __pyx_codeobj__468 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_dblsum, 2485, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__468)) __PYX_ERR(0, 2485, __pyx_L1_error)
  __pyx_tuple__469 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__469)) __PYX_ERR(0, 2485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__469);
  __Pyx_GIVEREF(__pyx_tuple__469);

  /* "pysndlib/generators.pyx":2495
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_dblsum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an dblsum
 */
  __pyx_codeobj__470 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_dblsum, 2495, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__470)) __PYX_ERR(0, 2495, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2517
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 */
  __pyx_codeobj__471 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2517, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__471)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __pyx_tuple__472 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__472)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__472);
  __Pyx_GIVEREF(__pyx_tuple__472);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__473 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__473)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2539
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkoddssb generator that produces many sinusoids from
 */
  __pyx_codeobj__475 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__297, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_rkoddssb, 2539, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(0, 2539, __pyx_L1_error)
  __pyx_tuple__476 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_, __pyx_float__5); if (unlikely(!__pyx_tuple__476)) __PYX_ERR(0, 2539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__476);
  __Pyx_GIVEREF(__pyx_tuple__476);

  /* "pysndlib/generators.pyx":2546
 *     return Rkoddssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).
 */
  __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_rkoddssb, 2546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(0, 2546, __pyx_L1_error)
  __pyx_tuple__478 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(0, 2546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__478);
  __Pyx_GIVEREF(__pyx_tuple__478);

  /* "pysndlib/generators.pyx":2556
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkoddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkoddssb
 */
  __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_rkoddssb, 2556, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(0, 2556, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2573
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 */
  __pyx_codeobj__480 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2573, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__480)) __PYX_ERR(0, 2573, __pyx_L1_error)
  __pyx_tuple__481 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__481)) __PYX_ERR(0, 2573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__481);
  __Pyx_GIVEREF(__pyx_tuple__481);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__482 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__482)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__483 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2584
 *         return self.next(fm)
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 */
  __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_krksin, 2584, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(0, 2584, __pyx_L1_error)
  __pyx_tuple__485 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__485)) __PYX_ERR(0, 2584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__485);
  __Pyx_GIVEREF(__pyx_tuple__485);

  /* "pysndlib/generators.pyx":2590
 *     return Krksin(frequency, r)
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude kr^k.
 */
  __pyx_codeobj__486 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_krksin, 2590, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__486)) __PYX_ERR(0, 2590, __pyx_L1_error)
  __pyx_tuple__487 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__487)) __PYX_ERR(0, 2590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__487);
  __Pyx_GIVEREF(__pyx_tuple__487);

  /* "pysndlib/generators.pyx":2601
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_krksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an krksin
 */
  __pyx_codeobj__488 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_krksin, 2601, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__488)) __PYX_ERR(0, 2601, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2619
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)
 * 
 */
  __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2619, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __pyx_tuple__490 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__490)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__490);
  __Pyx_GIVEREF(__pyx_tuple__490);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__491 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__491)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__492 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__492)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2644
 * 
 * 
 * cpdef Absin make_absin(frequency=0):             # <<<<<<<<<<<<<<
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)
 */
  __pyx_codeobj__493 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__438, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_absin, 2644, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__493)) __PYX_ERR(0, 2644, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2648
 *     return Absin(frequency)
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """(abs oscil)
 * 
 */
  __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_absin, 2648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(0, 2648, __pyx_L1_error)
  __pyx_tuple__495 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__495)) __PYX_ERR(0, 2648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__495);
  __Pyx_GIVEREF(__pyx_tuple__495);

  /* "pysndlib/generators.pyx":2657
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_absin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an absin
 */
  __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_absin, 2657, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(0, 2657, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2678
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_codeobj__497 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2678, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__497)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __pyx_tuple__498 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__498)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__498);
  __Pyx_GIVEREF(__pyx_tuple__498);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__499 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__500 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2686
 *         return self.next(fm)
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *     """
 *     creates an abcos generator that produces many cosines spaced
 */
  __pyx_tuple__501 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_a, __pyx_n_s_b); if (unlikely(!__pyx_tuple__501)) __PYX_ERR(0, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__501);
  __Pyx_GIVEREF(__pyx_tuple__501);
  __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__501, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_abcos, 2686, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(0, 2686, __pyx_L1_error)
  __pyx_tuple__503 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_float__25); if (unlikely(!__pyx_tuple__503)) __PYX_ERR(0, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__503);
  __Pyx_GIVEREF(__pyx_tuple__503);

  /* "pysndlib/generators.pyx":2693
 *     return Abcos(frequency, a, b)
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.
 */
  __pyx_codeobj__504 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_abcos, 2693, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__504)) __PYX_ERR(0, 2693, __pyx_L1_error)
  __pyx_tuple__505 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__505)) __PYX_ERR(0, 2693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__505);
  __Pyx_GIVEREF(__pyx_tuple__505);

  /* "pysndlib/generators.pyx":2703
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_abcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an abcos
 */
  __pyx_codeobj__506 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_abcos, 2703, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__506)) __PYX_ERR(0, 2703, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2724
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 */
  __pyx_codeobj__507 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__507)) __PYX_ERR(0, 2724, __pyx_L1_error)
  __pyx_tuple__508 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__508)) __PYX_ERR(0, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__508);
  __Pyx_GIVEREF(__pyx_tuple__508);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__509 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__509)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__510 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__510)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2734
 *         return self.next(fm)
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */
  __pyx_codeobj__511 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_r2k2cos, 2734, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__511)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __pyx_tuple__512 = PyTuple_Pack(2, __pyx_int_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__512)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__512);
  __Pyx_GIVEREF(__pyx_tuple__512);

  /* "pysndlib/generators.pyx":2740
 *     return R2k2cos(frequency, r)
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */
  __pyx_codeobj__513 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_r2k2cos, 2740, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__513)) __PYX_ERR(0, 2740, __pyx_L1_error)
  __pyx_tuple__514 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__514)) __PYX_ERR(0, 2740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__514);
  __Pyx_GIVEREF(__pyx_tuple__514);

  /* "pysndlib/generators.pyx":2751
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2k2cos
 */
  __pyx_codeobj__515 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_r2k2cos, 2751, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__515)) __PYX_ERR(0, 2751, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2773
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 */
  __pyx_codeobj__516 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2773, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__516)) __PYX_ERR(0, 2773, __pyx_L1_error)
  __pyx_tuple__517 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__517)) __PYX_ERR(0, 2773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__517);
  __Pyx_GIVEREF(__pyx_tuple__517);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__518 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__518)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)
 */
  __pyx_codeobj__519 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__519)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2793
 *         return self.next(fm)
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)
 */
  __pyx_codeobj__520 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_blsaw, 2793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__520)) __PYX_ERR(0, 2793, __pyx_L1_error)
  __pyx_tuple__521 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float__5); if (unlikely(!__pyx_tuple__521)) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__521);
  __Pyx_GIVEREF(__pyx_tuple__521);

  /* "pysndlib/generators.pyx":2797
 *     return Blsaw(frequency, r, n)
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a band-limited sawtooth wave.
 */
  __pyx_codeobj__522 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_blsaw, 2797, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__522)) __PYX_ERR(0, 2797, __pyx_L1_error)
  __pyx_tuple__523 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__523)) __PYX_ERR(0, 2797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__523);
  __Pyx_GIVEREF(__pyx_tuple__523);

  /* "pysndlib/generators.pyx":2807
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blsaw(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blsaw
 */
  __pyx_codeobj__524 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_blsaw, 2807, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__524)) __PYX_ERR(0, 2807, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2829
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 */
  __pyx_codeobj__525 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__525)) __PYX_ERR(0, 2829, __pyx_L1_error)
  __pyx_tuple__526 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__526)) __PYX_ERR(0, 2829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__526);
  __Pyx_GIVEREF(__pyx_tuple__526);

  /* "pysndlib/generators.pyx":2837
 *         return result
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         self.next(fm)
 * 
 */
  __pyx_codeobj__527 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next_i, 2837, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__527)) __PYX_ERR(0, 2837, __pyx_L1_error)
  __pyx_tuple__528 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__528)) __PYX_ERR(0, 2837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__528);
  __Pyx_GIVEREF(__pyx_tuple__528);

  /* "pysndlib/generators.pyx":2840
 *         self.next(fm)
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle
 */
  __pyx_codeobj__529 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next_j, 2840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__529)) __PYX_ERR(0, 2840, __pyx_L1_error)
  __pyx_tuple__530 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__530)) __PYX_ERR(0, 2840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__530);
  __Pyx_GIVEREF(__pyx_tuple__530);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__531 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__531)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)
 */
  __pyx_codeobj__532 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__532)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2851
 *         return self.next(fm)
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 */
  __pyx_tuple__533 = PyTuple_Pack(4, __pyx_n_s_frequency, __pyx_n_s_ratio, __pyx_n_s_r, __pyx_n_s_index); if (unlikely(!__pyx_tuple__533)) __PYX_ERR(0, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__533);
  __Pyx_GIVEREF(__pyx_tuple__533);
  __pyx_codeobj__534 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__533, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_asyfm, 2851, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__534)) __PYX_ERR(0, 2851, __pyx_L1_error)
  __pyx_tuple__535 = PyTuple_Pack(4, __pyx_int_0, __pyx_float_1_, __pyx_float_1_, __pyx_float_1_0); if (unlikely(!__pyx_tuple__535)) __PYX_ERR(0, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__535);
  __Pyx_GIVEREF(__pyx_tuple__535);

  /* "pysndlib/generators.pyx":2857
 *     return Asyfm(frequency, ratio, r, index)
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     same as asyfum_i. the I0 case of the asymmetric-fm generator
 */
  __pyx_codeobj__536 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_asyfm, 2857, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__536)) __PYX_ERR(0, 2857, __pyx_L1_error)
  __pyx_tuple__537 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__537)) __PYX_ERR(0, 2857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__537);
  __Pyx_GIVEREF(__pyx_tuple__537);

  /* "pysndlib/generators.pyx":2868
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     the I0 case of the asymmetric-fm generator
 */
  __pyx_codeobj__538 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_asyfm_i, 2868, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__538)) __PYX_ERR(0, 2868, __pyx_L1_error)
  __pyx_tuple__539 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__539)) __PYX_ERR(0, 2868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__539);
  __Pyx_GIVEREF(__pyx_tuple__539);

  /* "pysndlib/generators.pyx":2878
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     is the same as the CLM asymmetric-fm generator
 */
  __pyx_codeobj__540 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_asyfm_j, 2878, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__540)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __pyx_tuple__541 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__541)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__541);
  __Pyx_GIVEREF(__pyx_tuple__541);

  /* "pysndlib/generators.pyx":2888
 *     return gen.next_j(fm)
 * 
 * cpdef cython.bint is_asyfm(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an asyfm
 */
  __pyx_codeobj__542 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_asyfm, 2888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__542)) __PYX_ERR(0, 2888, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2912
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 */
  __pyx_codeobj__543 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2912, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__543)) __PYX_ERR(0, 2912, __pyx_L1_error)
  __pyx_tuple__544 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__544)) __PYX_ERR(0, 2912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__544);
  __Pyx_GIVEREF(__pyx_tuple__544);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__545 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__545)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)
 */
  __pyx_codeobj__546 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__546)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2920
 *         return self.next(fm)
 * 
 * cpdef Bess make_bess(frequency=0, n=0):             # <<<<<<<<<<<<<<
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)
 */
  __pyx_codeobj__547 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_bess, 2920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__547)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __pyx_tuple__548 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__548)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__548);
  __Pyx_GIVEREF(__pyx_tuple__548);

  /* "pysndlib/generators.pyx":2924
 *     return Bess(frequency, n)
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns Jn
 */
  __pyx_codeobj__549 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_bess, 2924, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__549)) __PYX_ERR(0, 2924, __pyx_L1_error)
  __pyx_tuple__550 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__550)) __PYX_ERR(0, 2924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__550);
  __Pyx_GIVEREF(__pyx_tuple__550);

  /* "pysndlib/generators.pyx":2935
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_bess(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an bess
 */
  __pyx_codeobj__551 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_bess, 2935, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__551)) __PYX_ERR(0, 2935, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2956
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 */
  __pyx_codeobj__552 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 2956, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__552)) __PYX_ERR(0, 2956, __pyx_L1_error)
  __pyx_tuple__553 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__553)) __PYX_ERR(0, 2956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__553);
  __Pyx_GIVEREF(__pyx_tuple__553);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__554 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__554)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__555 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__555)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":2967
 *         return self.next(fm)
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 */
  __pyx_tuple__556 = PyTuple_Pack(4, __pyx_n_s_frequency, __pyx_n_s_r, __pyx_n_s_a, __pyx_n_s_k); if (unlikely(!__pyx_tuple__556)) __PYX_ERR(0, 2967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__556);
  __Pyx_GIVEREF(__pyx_tuple__556);
  __pyx_codeobj__557 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_jjcos, 2967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__557)) __PYX_ERR(0, 2967, __pyx_L1_error)
  __pyx_tuple__558 = PyTuple_Pack(4, __pyx_int_0, __pyx_float__5, __pyx_float_1_, __pyx_float_1_); if (unlikely(!__pyx_tuple__558)) __PYX_ERR(0, 2967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__558);
  __Pyx_GIVEREF(__pyx_tuple__558);

  /* "pysndlib/generators.pyx":2972
 *     return Jjcos(frequency, r, a, k)
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by a product of Bessel functions.
 */
  __pyx_codeobj__559 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_jjcos, 2972, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__559)) __PYX_ERR(0, 2972, __pyx_L1_error)
  __pyx_tuple__560 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__560)) __PYX_ERR(0, 2972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__560);
  __Pyx_GIVEREF(__pyx_tuple__560);

  /* "pysndlib/generators.pyx":2982
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jjcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jjcos
 */
  __pyx_codeobj__561 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_jjcos, 2982, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__561)) __PYX_ERR(0, 2982, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3002
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 */
  __pyx_codeobj__562 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3002, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__562)) __PYX_ERR(0, 3002, __pyx_L1_error)
  __pyx_tuple__563 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__563)) __PYX_ERR(0, 3002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__563);
  __Pyx_GIVEREF(__pyx_tuple__563);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__564 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__564)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__565 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__565)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3015
 *         return self.next(fm)
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 */
  __pyx_tuple__566 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_index); if (unlikely(!__pyx_tuple__566)) __PYX_ERR(0, 3015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__566);
  __Pyx_GIVEREF(__pyx_tuple__566);
  __pyx_codeobj__567 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_j0evencos, 3015, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__567)) __PYX_ERR(0, 3015, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3021
 *     return J0evencos(frequency, index)
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a sum of cosines scaled Jk^2(index/2).
 * 
 */
  __pyx_codeobj__568 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_j0evencos, 3021, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__568)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __pyx_tuple__569 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__569)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__569);
  __Pyx_GIVEREF(__pyx_tuple__569);

  /* "pysndlib/generators.pyx":3030
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0evencos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0evencos
 */
  __pyx_codeobj__570 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_j0evencos, 3030, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__570)) __PYX_ERR(0, 3030, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3051
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 */
  __pyx_codeobj__571 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3051, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__571)) __PYX_ERR(0, 3051, __pyx_L1_error)
  __pyx_tuple__572 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__572)) __PYX_ERR(0, 3051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__572);
  __Pyx_GIVEREF(__pyx_tuple__572);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__573 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__573)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__574 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__574)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3061
 *         return self.next(fm)
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_tuple__575 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_r, __pyx_n_s_n); if (unlikely(!__pyx_tuple__575)) __PYX_ERR(0, 3061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__575);
  __Pyx_GIVEREF(__pyx_tuple__575);
  __pyx_codeobj__576 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__575, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_j2cos, 3061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__576)) __PYX_ERR(0, 3061, __pyx_L1_error)
  __pyx_tuple__577 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_int_1); if (unlikely(!__pyx_tuple__577)) __PYX_ERR(0, 3061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__577);
  __Pyx_GIVEREF(__pyx_tuple__577);

  /* "pysndlib/generators.pyx":3067
 *     return J2cos(frequency, r, n)
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__578 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_j2cos, 3067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__578)) __PYX_ERR(0, 3067, __pyx_L1_error)
  __pyx_tuple__579 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__579)) __PYX_ERR(0, 3067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__579);
  __Pyx_GIVEREF(__pyx_tuple__579);

  /* "pysndlib/generators.pyx":3077
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j2cos
 */
  __pyx_codeobj__580 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_j2cos, 3077, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__580)) __PYX_ERR(0, 3077, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3101
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 */
  __pyx_codeobj__581 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__581)) __PYX_ERR(0, 3101, __pyx_L1_error)
  __pyx_tuple__582 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__582)) __PYX_ERR(0, 3101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__582);
  __Pyx_GIVEREF(__pyx_tuple__582);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__583 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__583)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__584 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__584)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3112
 *         return self.next(fm)
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__585 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_jpcos, 3112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__585)) __PYX_ERR(0, 3112, __pyx_L1_error)
  __pyx_tuple__586 = PyTuple_Pack(4, __pyx_int_0, __pyx_float__5, __pyx_float_0_0, __pyx_float_1_0); if (unlikely(!__pyx_tuple__586)) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__586);
  __Pyx_GIVEREF(__pyx_tuple__586);

  /* "pysndlib/generators.pyx":3118
 *     return Jpcos(frequency, r, a, k)
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__587 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_jpcos, 3118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__587)) __PYX_ERR(0, 3118, __pyx_L1_error)
  __pyx_tuple__588 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__588)) __PYX_ERR(0, 3118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__588);
  __Pyx_GIVEREF(__pyx_tuple__588);

  /* "pysndlib/generators.pyx":3128
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jpcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jpcos
 */
  __pyx_codeobj__589 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_jpcos, 3128, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__589)) __PYX_ERR(0, 3128, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3149
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 */
  __pyx_codeobj__590 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3149, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__590)) __PYX_ERR(0, 3149, __pyx_L1_error)
  __pyx_tuple__591 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__591)) __PYX_ERR(0, 3149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__591);
  __Pyx_GIVEREF(__pyx_tuple__591);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__592 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__592)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__593 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__593)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3159
 *         return self.next(fm)
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_tuple__594 = PyTuple_Pack(4, __pyx_n_s_frequency, __pyx_n_s_r, __pyx_n_s_a, __pyx_n_s_n); if (unlikely(!__pyx_tuple__594)) __PYX_ERR(0, 3159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__594);
  __Pyx_GIVEREF(__pyx_tuple__594);
  __pyx_codeobj__595 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__594, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_jncos, 3159, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__595)) __PYX_ERR(0, 3159, __pyx_L1_error)
  __pyx_tuple__596 = PyTuple_Pack(4, __pyx_int_0, __pyx_float__5, __pyx_float_1_0, __pyx_int_0); if (unlikely(!__pyx_tuple__596)) __PYX_ERR(0, 3159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__596);
  __Pyx_GIVEREF(__pyx_tuple__596);

  /* "pysndlib/generators.pyx":3165
 *     return Jncos(frequency, r, a, n)
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__597 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_jncos, 3165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__597)) __PYX_ERR(0, 3165, __pyx_L1_error)
  __pyx_tuple__598 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__598)) __PYX_ERR(0, 3165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__598);
  __Pyx_GIVEREF(__pyx_tuple__598);

  /* "pysndlib/generators.pyx":3175
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jncos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jncos
 */
  __pyx_codeobj__599 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_jncos, 3175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__599)) __PYX_ERR(0, 3175, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3194
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 */
  __pyx_codeobj__600 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3194, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__600)) __PYX_ERR(0, 3194, __pyx_L1_error)
  __pyx_tuple__601 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__601)) __PYX_ERR(0, 3194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__601);
  __Pyx_GIVEREF(__pyx_tuple__601);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__602 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__602)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__603 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__603)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3204
 *         return self.next(fm)
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__604 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_j0j1cos, 3204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__604)) __PYX_ERR(0, 3204, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3210
 *     return J0j1cos(frequency, index)
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_codeobj__605 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_j0j1cos, 3210, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__605)) __PYX_ERR(0, 3210, __pyx_L1_error)
  __pyx_tuple__606 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__606)) __PYX_ERR(0, 3210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__606);
  __Pyx_GIVEREF(__pyx_tuple__606);

  /* "pysndlib/generators.pyx":3220
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0j1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0j1cos
 */
  __pyx_codeobj__607 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_j0j1cos, 3220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__607)) __PYX_ERR(0, 3220, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3246
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 */
  __pyx_codeobj__608 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__608)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __pyx_tuple__609 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__609)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__609);
  __Pyx_GIVEREF(__pyx_tuple__609);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__610 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__610)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__611 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__611)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3259
 *         return self.next(fm)
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 */
  __pyx_tuple__612 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_r, __pyx_n_s_a); if (unlikely(!__pyx_tuple__612)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__612);
  __Pyx_GIVEREF(__pyx_tuple__612);
  __pyx_codeobj__613 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__612, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_jycos, 3259, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__613)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __pyx_tuple__614 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_float__5); if (unlikely(!__pyx_tuple__614)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__614);
  __Pyx_GIVEREF(__pyx_tuple__614);

  /* "pysndlib/generators.pyx":3265
 *     return Jycos(frequency, r,a)
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by Yn(r)*Jn(r).
 */
  __pyx_codeobj__615 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_jycos, 3265, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__615)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __pyx_tuple__616 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__616)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__616);
  __Pyx_GIVEREF(__pyx_tuple__616);

  /* "pysndlib/generators.pyx":3275
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jycos
 */
  __pyx_codeobj__617 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_jycos, 3275, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__617)) __PYX_ERR(0, 3275, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3294
 *         self.a = a
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 */
  __pyx_codeobj__618 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3294, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__618)) __PYX_ERR(0, 3294, __pyx_L1_error)
  __pyx_tuple__619 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__619)) __PYX_ERR(0, 3294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__619);
  __Pyx_GIVEREF(__pyx_tuple__619);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__620 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__620)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__621 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__621)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3306
 *         return self.next(fm)
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 */
  __pyx_codeobj__622 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__612, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_jcos, 3306, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__622)) __PYX_ERR(0, 3306, __pyx_L1_error)
  __pyx_tuple__623 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_float__5); if (unlikely(!__pyx_tuple__623)) __PYX_ERR(0, 3306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__623);
  __Pyx_GIVEREF(__pyx_tuple__623);

  /* "pysndlib/generators.pyx":3312
 *     return Jcos(frequency, r,a)
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in some complex manner.
 */
  __pyx_codeobj__624 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_jcos, 3312, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__624)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __pyx_tuple__625 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__625)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__625);
  __Pyx_GIVEREF(__pyx_tuple__625);

  /* "pysndlib/generators.pyx":3322
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jcos
 */
  __pyx_codeobj__626 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_jcos, 3322, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__626)) __PYX_ERR(0, 3322, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3346
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return clm.polywave(self.osc, fm)
 * 
 */
  __pyx_codeobj__627 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3346, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__627)) __PYX_ERR(0, 3346, __pyx_L1_error)
  __pyx_tuple__628 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__628)) __PYX_ERR(0, 3346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__628);
  __Pyx_GIVEREF(__pyx_tuple__628);

  /* "pysndlib/generators.pyx":3352
 *         return self.next(fm)
 * 
 *     cpdef mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_tuple__629 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__629)) __PYX_ERR(0, 3352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__629);
  __Pyx_GIVEREF(__pyx_tuple__629);
  __pyx_codeobj__630 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__629, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_mus_reset, 3352, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__630)) __PYX_ERR(0, 3352, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__631 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__631)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)
 */
  __pyx_codeobj__632 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__632)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3356
 *         self.angle = 0.
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 */
  __pyx_codeobj__633 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_blackman, 3356, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__633)) __PYX_ERR(0, 3356, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3361
 *     return Blackman(frequency, n)
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)
 * 
 */
  __pyx_codeobj__634 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_blackman, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__634)) __PYX_ERR(0, 3361, __pyx_L1_error)
  __pyx_tuple__635 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__635)) __PYX_ERR(0, 3361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__635);
  __Pyx_GIVEREF(__pyx_tuple__635);

  /* "pysndlib/generators.pyx":3370
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blackman(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blackman
 */
  __pyx_codeobj__636 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_blackman, 3370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__636)) __PYX_ERR(0, 3370, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3391
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_codeobj__637 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3391, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__637)) __PYX_ERR(0, 3391, __pyx_L1_error)
  __pyx_tuple__638 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__638)) __PYX_ERR(0, 3391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__638);
  __Pyx_GIVEREF(__pyx_tuple__638);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__639 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__639)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)
 */
  __pyx_codeobj__640 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__640)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3409
 * 
 * 
 * cpdef Fmssb make_fmssb(frequency=0, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an fmssb generator that produces single-sideband FM.
 */
  __pyx_tuple__641 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_ratio, __pyx_n_s_index); if (unlikely(!__pyx_tuple__641)) __PYX_ERR(0, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__641);
  __Pyx_GIVEREF(__pyx_tuple__641);
  __pyx_codeobj__642 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__641, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_fmssb, 3409, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__642)) __PYX_ERR(0, 3409, __pyx_L1_error)
  __pyx_tuple__643 = PyTuple_Pack(3, __pyx_int_0, __pyx_float_1_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__643)) __PYX_ERR(0, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__643);
  __Pyx_GIVEREF(__pyx_tuple__643);

  /* "pysndlib/generators.pyx":3415
 *     return Fmssb(frequency, ratio, index)
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns single-sideband FM.
 */
  __pyx_codeobj__644 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_fmssb, 3415, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__644)) __PYX_ERR(0, 3415, __pyx_L1_error)
  __pyx_tuple__645 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__645)) __PYX_ERR(0, 3415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__645);
  __Pyx_GIVEREF(__pyx_tuple__645);

  /* "pysndlib/generators.pyx":3426
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_fmssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an fmssb
 */
  __pyx_codeobj__646 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_fmssb, 3426, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__646)) __PYX_ERR(0, 3426, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3444
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 */
  __pyx_codeobj__647 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3444, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__647)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __pyx_tuple__648 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__648)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__648);
  __Pyx_GIVEREF(__pyx_tuple__648);

  /* "pysndlib/generators.pyx":3454
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_codeobj__649 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__629, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_mus_reset, 3454, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__649)) __PYX_ERR(0, 3454, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__650 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__650)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__651 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__651)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3459
 * 
 * 
 * cpdef K3sin make_k3sin(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)
 */
  __pyx_codeobj__652 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_k3sin, 3459, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__652)) __PYX_ERR(0, 3459, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3463
 *     return K3sin(frequency)
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by k^3.
 */
  __pyx_codeobj__653 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_k3sin, 3463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__653)) __PYX_ERR(0, 3463, __pyx_L1_error)
  __pyx_tuple__654 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__654)) __PYX_ERR(0, 3463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__654);
  __Pyx_GIVEREF(__pyx_tuple__654);

  /* "pysndlib/generators.pyx":3473
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k3sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k3sin
 */
  __pyx_codeobj__655 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_k3sin, 3473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__655)) __PYX_ERR(0, 3473, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3495
 *         self.inorm = 1.0 / self.norm
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 */
  __pyx_codeobj__656 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3495, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__656)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __pyx_tuple__657 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__657)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__657);
  __Pyx_GIVEREF(__pyx_tuple__657);

  /* "pysndlib/generators.pyx":3505
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_codeobj__658 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__629, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_mus_reset, 3505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__658)) __PYX_ERR(0, 3505, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__659 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__659)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__660 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__660)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3520
 *         self.inorm = 1.0 / self.norm
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 */
  __pyx_codeobj__661 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_izcos, 3520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__661)) __PYX_ERR(0, 3520, __pyx_L1_error)
  __pyx_tuple__662 = PyTuple_Pack(2, __pyx_int_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__662)) __PYX_ERR(0, 3520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__662);
  __Pyx_GIVEREF(__pyx_tuple__662);

  /* "pysndlib/generators.pyx":3526
 *     return Izcos(frequency, r)
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by In(r)
 */
  __pyx_codeobj__663 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_izcos, 3526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__663)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __pyx_tuple__664 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__664)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__664);
  __Pyx_GIVEREF(__pyx_tuple__664);

  /* "pysndlib/generators.pyx":3535
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_izcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an izcos
 */
  __pyx_codeobj__665 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_izcos, 3535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__665)) __PYX_ERR(0, 3535, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3558
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 */
  __pyx_codeobj__666 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__666)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __pyx_tuple__667 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__667)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__667);
  __Pyx_GIVEREF(__pyx_tuple__667);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__668 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__668)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)
 */
  __pyx_codeobj__669 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__669)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3594
 * 
 * 
 * cpdef AdjustableSquareWave make_adjustable_square_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-square-wave generator that produces square-wave
 */
  __pyx_tuple__670 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_duty_factor, __pyx_n_s_amplitude); if (unlikely(!__pyx_tuple__670)) __PYX_ERR(0, 3594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__670);
  __Pyx_GIVEREF(__pyx_tuple__670);
  __pyx_codeobj__671 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__670, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_adjustable_square_wave, 3594, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__671)) __PYX_ERR(0, 3594, __pyx_L1_error)
  __pyx_tuple__672 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_float_1_0); if (unlikely(!__pyx_tuple__672)) __PYX_ERR(0, 3594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__672);
  __Pyx_GIVEREF(__pyx_tuple__672);

  /* "pysndlib/generators.pyx":3600
 *     return AdjustableSquareWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a square-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_codeobj__673 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_adjustable_square_wave, 3600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__673)) __PYX_ERR(0, 3600, __pyx_L1_error)
  __pyx_tuple__674 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__674)) __PYX_ERR(0, 3600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__674);
  __Pyx_GIVEREF(__pyx_tuple__674);

  /* "pysndlib/generators.pyx":3611
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_square_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_square_wave
 */
  __pyx_codeobj__675 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_adjustable_square_wave, 3611, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__675)) __PYX_ERR(0, 3611, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3636
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_codeobj__676 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3636, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__676)) __PYX_ERR(0, 3636, __pyx_L1_error)
  __pyx_tuple__677 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__677)) __PYX_ERR(0, 3636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__677);
  __Pyx_GIVEREF(__pyx_tuple__677);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__678 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__678)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)
 */
  __pyx_codeobj__679 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__679)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3670
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-triangle-wave generator that produces a triangle-wave where the
 */
  __pyx_codeobj__680 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__670, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_adjustable_triangle_wave, 3670, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__680)) __PYX_ERR(0, 3670, __pyx_L1_error)
  __pyx_tuple__681 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_float_1_0); if (unlikely(!__pyx_tuple__681)) __PYX_ERR(0, 3670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__681);
  __Pyx_GIVEREF(__pyx_tuple__681);

  /* "pysndlib/generators.pyx":3677
 *     return AdjustableTriangleWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a triangle-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_codeobj__682 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_adjustable_triangle_wave, 3677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__682)) __PYX_ERR(0, 3677, __pyx_L1_error)
  __pyx_tuple__683 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__683)) __PYX_ERR(0, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__683);
  __Pyx_GIVEREF(__pyx_tuple__683);

  /* "pysndlib/generators.pyx":3687
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_triangle_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_triangle_wave
 */
  __pyx_codeobj__684 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_adjustable_triangle_wave, 3687, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__684)) __PYX_ERR(0, 3687, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3711
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_codeobj__685 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3711, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__685)) __PYX_ERR(0, 3711, __pyx_L1_error)
  __pyx_tuple__686 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__686)) __PYX_ERR(0, 3711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__686);
  __Pyx_GIVEREF(__pyx_tuple__686);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__687 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__687)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)
 */
  __pyx_codeobj__688 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__688)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3746
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_codeobj__689 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__670, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_adjustable_sawtooth_wave, 3746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__689)) __PYX_ERR(0, 3746, __pyx_L1_error)
  __pyx_tuple__690 = PyTuple_Pack(3, __pyx_int_0, __pyx_float__5, __pyx_float_1_0); if (unlikely(!__pyx_tuple__690)) __PYX_ERR(0, 3746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__690);
  __Pyx_GIVEREF(__pyx_tuple__690);

  /* "pysndlib/generators.pyx":3752
 *     return AdjustableSawtoothWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_codeobj__691 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_adjustable_sawtooth_wave, 3752, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__691)) __PYX_ERR(0, 3752, __pyx_L1_error)
  __pyx_tuple__692 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__692)) __PYX_ERR(0, 3752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__692);
  __Pyx_GIVEREF(__pyx_tuple__692);

  /* "pysndlib/generators.pyx":3762
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_sawtooth_wave
 */
  __pyx_codeobj__693 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_adjustable_sawtooth_wave, 3762, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__693)) __PYX_ERR(0, 3762, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3788
 *             self.scl = 1. / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_codeobj__694 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3788, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__694)) __PYX_ERR(0, 3788, __pyx_L1_error)
  __pyx_tuple__695 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__695)) __PYX_ERR(0, 3788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__695);
  __Pyx_GIVEREF(__pyx_tuple__695);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__696 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__696)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)
 */
  __pyx_codeobj__697 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__697)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3823
 *             self.scl = 1. / val
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_tuple__698 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_duty_factor); if (unlikely(!__pyx_tuple__698)) __PYX_ERR(0, 3823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__698);
  __Pyx_GIVEREF(__pyx_tuple__698);
  __pyx_codeobj__699 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__698, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_adjustable_oscil, 3823, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__699)) __PYX_ERR(0, 3823, __pyx_L1_error)
  __pyx_tuple__700 = PyTuple_Pack(2, __pyx_int_0, __pyx_float__5); if (unlikely(!__pyx_tuple__700)) __PYX_ERR(0, 3823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__700);
  __Pyx_GIVEREF(__pyx_tuple__700);

  /* "pysndlib/generators.pyx":3829
 *     return AdjustableOscil(frequency, duty_factor)
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_codeobj__701 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_adjustable_oscil, 3829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__701)) __PYX_ERR(0, 3829, __pyx_L1_error)
  __pyx_tuple__702 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__702)) __PYX_ERR(0, 3829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__702);
  __Pyx_GIVEREF(__pyx_tuple__702);

  /* "pysndlib/generators.pyx":3839
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_oscil(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_oscil_wave
 */
  __pyx_codeobj__703 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_adjustable_oscil, 3839, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__703)) __PYX_ERR(0, 3839, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3850
 * # --------------- make-table-lookup-with-env ---------------- #
 * 
 * cpdef make_table_lookup_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a table lookup generator from an envelope
 */
  __pyx_tuple__704 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_pulse_env, __pyx_n_s_size); if (unlikely(!__pyx_tuple__704)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__704);
  __Pyx_GIVEREF(__pyx_tuple__704);
  __pyx_codeobj__705 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__704, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_table_lookup_with_env, 3850, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__705)) __PYX_ERR(0, 3850, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3863
 * # --------------- make-wave-train-with-env ---------------- #
 * 
 * cpdef make_wave_train_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a wave train generator from an envelope
 */
  __pyx_codeobj__706 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__704, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_wave_train_with_env, 3863, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__706)) __PYX_ERR(0, 3863, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3886
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 */
  __pyx_codeobj__707 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3886, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__707)) __PYX_ERR(0, 3886, __pyx_L1_error)
  __pyx_tuple__708 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__708)) __PYX_ERR(0, 3886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__708);
  __Pyx_GIVEREF(__pyx_tuple__708);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__709 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__709)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)
 */
  __pyx_codeobj__710 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__710)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3909
 * 
 * 
 * cpdef RoundInterp make_round_interp(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 */
  __pyx_tuple__711 = PyTuple_Pack(3, __pyx_n_s_frequency, __pyx_n_s_n, __pyx_n_s_amplitude); if (unlikely(!__pyx_tuple__711)) __PYX_ERR(0, 3909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__711);
  __Pyx_GIVEREF(__pyx_tuple__711);
  __pyx_codeobj__712 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__711, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_round_interp, 3909, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__712)) __PYX_ERR(0, 3909, __pyx_L1_error)
  __pyx_tuple__713 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float_1_0); if (unlikely(!__pyx_tuple__713)) __PYX_ERR(0, 3909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__713);
  __Pyx_GIVEREF(__pyx_tuple__713);

  /* "pysndlib/generators.pyx":3915
 *     return RoundInterp(frequency, n, amplitude)
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 * 
 */
  __pyx_codeobj__714 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_round_interp, 3915, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__714)) __PYX_ERR(0, 3915, __pyx_L1_error)
  __pyx_tuple__715 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__715)) __PYX_ERR(0, 3915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__715);
  __Pyx_GIVEREF(__pyx_tuple__715);

  /* "pysndlib/generators.pyx":3925
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_round_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an round
 */
  __pyx_codeobj__716 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_round_interp, 3925, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__716)) __PYX_ERR(0, 3925, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3941
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 * cpdef cython.double sine_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using sin function"""
 *     return clm.env_any(e, sin_env_fun)
 */
  __pyx_tuple__717 = PyTuple_Pack(1, __pyx_n_s_e); if (unlikely(!__pyx_tuple__717)) __PYX_ERR(0, 3941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__717);
  __Pyx_GIVEREF(__pyx_tuple__717);
  __pyx_codeobj__718 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__717, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_sine_env, 3941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__718)) __PYX_ERR(0, 3941, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3948
 *     return y*y
 * 
 * cpdef cython.double square_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using square wave function"""
 *     return clm.env_any(e, square_env_fun)
 */
  __pyx_codeobj__719 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__717, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_square_env, 3948, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__719)) __PYX_ERR(0, 3948, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3956
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 * 
 * cpdef cython.double blackman4_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using blackman function"""
 *     return clm.env_any(e, blackman4_env_fun)
 */
  __pyx_codeobj__720 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__717, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_blackman4_env, 3956, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__720)) __PYX_ERR(0, 3956, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */
  __pyx_tuple__721 = PyTuple_Pack(4, __pyx_n_s_e, __pyx_n_s_expts, __pyx_n_s_fun, __pyx_n_s_fun); if (unlikely(!__pyx_tuple__721)) __PYX_ERR(0, 3961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__721);
  __Pyx_GIVEREF(__pyx_tuple__721);
  __pyx_codeobj__722 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__721, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_multi_expt_env, 3961, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__722)) __PYX_ERR(0, 3961, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3977
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_codeobj__723 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 3977, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__723)) __PYX_ERR(0, 3977, __pyx_L1_error)
  __pyx_tuple__724 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__724)) __PYX_ERR(0, 3977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__724);
  __Pyx_GIVEREF(__pyx_tuple__724);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__725 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__725)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)
 */
  __pyx_codeobj__726 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__726)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":3988
 * 
 * 
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)
 */
  __pyx_codeobj__727 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__711, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_nchoosekcos, 3988, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__727)) __PYX_ERR(0, 3988, __pyx_L1_error)
  __pyx_tuple__728 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_1, __pyx_float_1_0); if (unlikely(!__pyx_tuple__728)) __PYX_ERR(0, 3988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__728);
  __Pyx_GIVEREF(__pyx_tuple__728);

  /* "pysndlib/generators.pyx":3992
 *     return Nchoosekcos(frequency, n, amplitude)
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by the binomial coefficients
 */
  __pyx_codeobj__729 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_nchoosekcos, 3992, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__729)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __pyx_tuple__730 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__730)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__730);
  __Pyx_GIVEREF(__pyx_tuple__730);

  /* "pysndlib/generators.pyx":4002
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nchoosekcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nchoosekcos
 */
  __pyx_codeobj__731 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_nchoosekcos, 4002, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__731)) __PYX_ERR(0, 4002, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4029
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 */
  __pyx_codeobj__732 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__732)) __PYX_ERR(0, 4029, __pyx_L1_error)
  __pyx_tuple__733 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__733)) __PYX_ERR(0, 4029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__733);
  __Pyx_GIVEREF(__pyx_tuple__733);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__734 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__734)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)
 */
  __pyx_codeobj__735 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__735)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4067
 *             self.n = 1 + (2 * val)
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a sinc-train generator with n components
 */
  __pyx_codeobj__736 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_sinc_train, 4067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__736)) __PYX_ERR(0, 4067, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4073
 *     return SincTrain(frequency, n)
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinc-train
 */
  __pyx_codeobj__737 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_sinc_train, 4073, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__737)) __PYX_ERR(0, 4073, __pyx_L1_error)
  __pyx_tuple__738 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__738)) __PYX_ERR(0, 4073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__738);
  __Pyx_GIVEREF(__pyx_tuple__738);

  /* "pysndlib/generators.pyx":4083
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_sinc_train(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an sinc_train
 */
  __pyx_codeobj__739 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_sinc_train, 4083, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__739)) __PYX_ERR(0, 4083, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4106
 *             self.data[i+1] = random.random()
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 */
  __pyx_codeobj__740 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4106, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__740)) __PYX_ERR(0, 4106, __pyx_L1_error)
  __pyx_tuple__741 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__741)) __PYX_ERR(0, 4106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__741);
  __Pyx_GIVEREF(__pyx_tuple__741);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__742 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__742)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)
 */
  __pyx_codeobj__743 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__743)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4127
 *         return self.next(fm)
 * 
 * cpdef PinkNoise make_pink_noise(n=1):             # <<<<<<<<<<<<<<
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)
 */
  __pyx_tuple__744 = PyTuple_Pack(1, __pyx_n_s_n); if (unlikely(!__pyx_tuple__744)) __PYX_ERR(0, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__744);
  __Pyx_GIVEREF(__pyx_tuple__744);
  __pyx_codeobj__745 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_pink_noise, 4127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__745)) __PYX_ERR(0, 4127, __pyx_L1_error)
  __pyx_tuple__746 = PyTuple_Pack(1, __pyx_int_1); if (unlikely(!__pyx_tuple__746)) __PYX_ERR(0, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__746);
  __Pyx_GIVEREF(__pyx_tuple__746);

  /* "pysndlib/generators.pyx":4131
 *     return PinkNoise( n)
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next random value in the 1/f stream produced by gen.
 */
  __pyx_codeobj__747 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_pink_noise, 4131, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__747)) __PYX_ERR(0, 4131, __pyx_L1_error)
  __pyx_tuple__748 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__748)) __PYX_ERR(0, 4131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__748);
  __Pyx_GIVEREF(__pyx_tuple__748);

  /* "pysndlib/generators.pyx":4141
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_pink_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an pink_noise
 */
  __pyx_codeobj__749 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_pink_noise, 4141, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__749)) __PYX_ERR(0, 4141, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4158
 *         self.sum = 0
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
  __pyx_codeobj__750 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__750)) __PYX_ERR(0, 4158, __pyx_L1_error)
  __pyx_tuple__751 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__751)) __PYX_ERR(0, 4158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__751);
  __Pyx_GIVEREF(__pyx_tuple__751);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__752 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__752)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)
 */
  __pyx_codeobj__753 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__753)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4169
 * 
 * 
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)
 */
  __pyx_tuple__754 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_amplitude); if (unlikely(!__pyx_tuple__754)) __PYX_ERR(0, 4169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__754);
  __Pyx_GIVEREF(__pyx_tuple__754);
  __pyx_codeobj__755 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__754, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_brown_noise, 4169, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__755)) __PYX_ERR(0, 4169, __pyx_L1_error)
  __pyx_tuple__756 = PyTuple_Pack(1, __pyx_float_1_0); if (unlikely(!__pyx_tuple__756)) __PYX_ERR(0, 4169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__756);
  __Pyx_GIVEREF(__pyx_tuple__756);

  /* "pysndlib/generators.pyx":4173
 *     return BrownNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next brownian noise sample
 */
  __pyx_codeobj__757 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_brown_noise, 4173, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__757)) __PYX_ERR(0, 4173, __pyx_L1_error)
  __pyx_tuple__758 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__758)) __PYX_ERR(0, 4173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__758);
  __Pyx_GIVEREF(__pyx_tuple__758);

  /* "pysndlib/generators.pyx":4183
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_brown_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an brown_noise
 */
  __pyx_codeobj__759 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_brown_noise, 4183, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__759)) __PYX_ERR(0, 4183, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4205
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
  __pyx_codeobj__760 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4205, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__760)) __PYX_ERR(0, 4205, __pyx_L1_error)
  __pyx_tuple__761 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__761)) __PYX_ERR(0, 4205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__761);
  __Pyx_GIVEREF(__pyx_tuple__761);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__762 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__762)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)
 */
  __pyx_codeobj__763 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__763)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4217
 *         return self.next(fm)
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)
 */
  __pyx_tuple__764 = PyTuple_Pack(4, __pyx_n_s_frequency, __pyx_n_s_amplitude, __pyx_n_s_low, __pyx_n_s_high); if (unlikely(!__pyx_tuple__764)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__764);
  __Pyx_GIVEREF(__pyx_tuple__764);
  __pyx_codeobj__765 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__764, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_green_noise, 4217, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__765)) __PYX_ERR(0, 4217, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4221
 *     return GreenNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next sample in a sequence of bounded brownian noise samples.
 */
  __pyx_codeobj__766 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_green_noise, 4221, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__766)) __PYX_ERR(0, 4221, __pyx_L1_error)
  __pyx_tuple__767 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__767)) __PYX_ERR(0, 4221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__767);
  __Pyx_GIVEREF(__pyx_tuple__767);

  /* "pysndlib/generators.pyx":4232
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise
 */
  __pyx_codeobj__768 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_green_noise, 4232, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__768)) __PYX_ERR(0, 4232, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4254
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 *     cpdef cython.double next(self, cython.double fm = 0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 */
  __pyx_codeobj__769 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__769)) __PYX_ERR(0, 4254, __pyx_L1_error)
  __pyx_tuple__770 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__770)) __PYX_ERR(0, 4254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__770);
  __Pyx_GIVEREF(__pyx_tuple__770);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__771 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__771)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)
 */
  __pyx_codeobj__772 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__772)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4273
 * 
 * 
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 */
  __pyx_codeobj__773 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__764, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_green_noise_interp, 4273, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__773)) __PYX_ERR(0, 4273, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4277
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next sample in a sequence of interpolated bounded brownian noise samples.
 */
  __pyx_codeobj__774 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_green_noise_interp, 4277, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__774)) __PYX_ERR(0, 4277, __pyx_L1_error)
  __pyx_tuple__775 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__775)) __PYX_ERR(0, 4277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__775);
  __Pyx_GIVEREF(__pyx_tuple__775);

  /* "pysndlib/generators.pyx":4287
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise_interp
 */
  __pyx_codeobj__776 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_green_noise_interp, 4287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__776)) __PYX_ERR(0, 4287, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4304
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 */
  __pyx_tuple__777 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_insig); if (unlikely(!__pyx_tuple__777)) __PYX_ERR(0, 4304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__777);
  __Pyx_GIVEREF(__pyx_tuple__777);
  __pyx_codeobj__778 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__777, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4304, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__778)) __PYX_ERR(0, 4304, __pyx_L1_error)
  __pyx_tuple__779 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__779)) __PYX_ERR(0, 4304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__779);
  __Pyx_GIVEREF(__pyx_tuple__779);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__780 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__780)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)
 */
  __pyx_codeobj__781 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__781)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4311
 * 
 * 
 * cpdef MovingSum make_moving_sum(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 */
  __pyx_codeobj__782 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_moving_sum, 4311, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__782)) __PYX_ERR(0, 4311, __pyx_L1_error)
  __pyx_tuple__783 = PyTuple_Pack(1, __pyx_int_128); if (unlikely(!__pyx_tuple__783)) __PYX_ERR(0, 4311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__783);
  __Pyx_GIVEREF(__pyx_tuple__783);

  /* "pysndlib/generators.pyx":4317
 *     return MovingSum(n)
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the absolute values in a moving window over the last n inputs.
 */
  __pyx_tuple__784 = PyTuple_Pack(2, __pyx_n_s_gen, __pyx_n_s_insig); if (unlikely(!__pyx_tuple__784)) __PYX_ERR(0, 4317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__784);
  __Pyx_GIVEREF(__pyx_tuple__784);
  __pyx_codeobj__785 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_moving_sum, 4317, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__785)) __PYX_ERR(0, 4317, __pyx_L1_error)
  __pyx_tuple__786 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__786)) __PYX_ERR(0, 4317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__786);
  __Pyx_GIVEREF(__pyx_tuple__786);

  /* "pysndlib/generators.pyx":4326
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_sum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_sum
 */
  __pyx_codeobj__787 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_moving_sum, 4326, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__787)) __PYX_ERR(0, 4326, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4346
 * 
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 */
  __pyx_codeobj__788 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__777, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4346, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__788)) __PYX_ERR(0, 4346, __pyx_L1_error)
  __pyx_tuple__789 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__789)) __PYX_ERR(0, 4346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__789);
  __Pyx_GIVEREF(__pyx_tuple__789);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__790 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__790)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)
 */
  __pyx_codeobj__791 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__791)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4355
 * 
 * 
 * cpdef MovingVariance make_moving_variance(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 */
  __pyx_codeobj__792 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_moving_variance, 4355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__792)) __PYX_ERR(0, 4355, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4361
 *     return MovingVariance(n)
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the variance of the values in a moving window over the last n inputs.
 */
  __pyx_codeobj__793 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_moving_variance, 4361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__793)) __PYX_ERR(0, 4361, __pyx_L1_error)
  __pyx_tuple__794 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__794)) __PYX_ERR(0, 4361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__794);
  __Pyx_GIVEREF(__pyx_tuple__794);

  /* "pysndlib/generators.pyx":4370
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_variance(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_variance
 */
  __pyx_codeobj__795 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_moving_variance, 4370, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__795)) __PYX_ERR(0, 4370, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4390
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 */
  __pyx_codeobj__796 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__777, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__796)) __PYX_ERR(0, 4390, __pyx_L1_error)
  __pyx_tuple__797 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__797)) __PYX_ERR(0, 4390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__797);
  __Pyx_GIVEREF(__pyx_tuple__797);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__798 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__798)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)
 */
  __pyx_codeobj__799 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__799)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4397
 * 
 * 
 * cpdef MovingRMS make_moving_rms(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-rms generator that produces
 */
  __pyx_codeobj__800 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_moving_rms, 4397, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__800)) __PYX_ERR(0, 4397, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4404
 *     return MovingRMS(n)
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the rms of the values in a window over the last n inputs.
 */
  __pyx_codeobj__801 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_moving_rms, 4404, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__801)) __PYX_ERR(0, 4404, __pyx_L1_error)
  __pyx_tuple__802 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__802)) __PYX_ERR(0, 4404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__802);
  __Pyx_GIVEREF(__pyx_tuple__802);

  /* "pysndlib/generators.pyx":4413
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_rms(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_rms
 */
  __pyx_codeobj__803 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_moving_rms, 4413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__803)) __PYX_ERR(0, 4413, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__804 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__804)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)
 */
  __pyx_codeobj__805 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__805)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4430
 *         self.gen.mus_increment = 1.0
 * 
 * cpdef MovingLength make_moving_length(n=128):             # <<<<<<<<<<<<<<
 *     """returns a moving-length generator that produces the length
 *     of the values in a window over the last few inputs.
 */
  __pyx_codeobj__806 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_moving_length, 4430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__806)) __PYX_ERR(0, 4430, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4436
 *     return MovingLength(n)
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the length of the values in a window over the last few inputs.
 */
  __pyx_codeobj__807 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_moving_length, 4436, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__807)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __pyx_tuple__808 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__808)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__808);
  __Pyx_GIVEREF(__pyx_tuple__808);

  /* "pysndlib/generators.pyx":4447
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_length(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_length
 */
  __pyx_codeobj__809 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_moving_length, 4447, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__809)) __PYX_ERR(0, 4447, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4467
 *         self.sum = 0.0
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 */
  __pyx_codeobj__810 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__777, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4467, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__810)) __PYX_ERR(0, 4467, __pyx_L1_error)
  __pyx_tuple__811 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__811)) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__811);
  __Pyx_GIVEREF(__pyx_tuple__811);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__812 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__812)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)
 */
  __pyx_codeobj__813 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__813)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4476
 * 
 * 
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)
 */
  __pyx_codeobj__814 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_weighted_moving_average, 4476, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__814)) __PYX_ERR(0, 4476, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4480
 *     return WeightedMovingAverage(n)
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by 1/n
 */
  __pyx_codeobj__815 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_weighted_moving_average, 4480, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__815)) __PYX_ERR(0, 4480, __pyx_L1_error)
  __pyx_tuple__816 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__816)) __PYX_ERR(0, 4480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__816);
  __Pyx_GIVEREF(__pyx_tuple__816);

  /* "pysndlib/generators.pyx":4490
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an weighted_moving_average
 */
  __pyx_codeobj__817 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_weighted_moving_average, 4490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__817)) __PYX_ERR(0, 4490, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4507
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.one_pole(self.gen, insig)
 * 
 */
  __pyx_codeobj__818 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__777, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4507, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__818)) __PYX_ERR(0, 4507, __pyx_L1_error)
  __pyx_tuple__819 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__819)) __PYX_ERR(0, 4507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__819);
  __Pyx_GIVEREF(__pyx_tuple__819);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__820 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__820)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)
 */
  __pyx_codeobj__821 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__821)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4514
 * 
 * 
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)
 */
  __pyx_codeobj__822 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__744, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_exponentially_weighted_movi, 4514, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__822)) __PYX_ERR(0, 4514, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4518
 *     return ExponentiallyWeightedMovingAverage(n)
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by (-n/(n+1))^k
 */
  __pyx_codeobj__823 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__784, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_exponentially_weighted_moving_av, 4518, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__823)) __PYX_ERR(0, 4518, __pyx_L1_error)
  __pyx_tuple__824 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__824)) __PYX_ERR(0, 4518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__824);
  __Pyx_GIVEREF(__pyx_tuple__824);

  /* "pysndlib/generators.pyx":4528
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an exponentially_weighted_moving_average
 */
  __pyx_codeobj__825 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_exponentially_weighted_moving, 4528, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__825)) __PYX_ERR(0, 4528, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4540
 * # --------------- polyoid ---------------- #
 * 
 * cpdef clm.mus_any make_polyoid(frequency, partial_amps_and_phases):             # <<<<<<<<<<<<<<
 *     """
 *     returns a polyoid generator that combines the first and second Chebyshev polynomials
 */
  __pyx_tuple__826 = PyTuple_Pack(2, __pyx_n_s_frequency, __pyx_n_s_partial_amps_and_phases); if (unlikely(!__pyx_tuple__826)) __PYX_ERR(0, 4540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__826);
  __Pyx_GIVEREF(__pyx_tuple__826);
  __pyx_codeobj__827 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__826, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_polyoid, 4540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__827)) __PYX_ERR(0, 4540, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4561
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns sum of sinusoids each with arbitrary amplitude and initial-phase.
 */
  __pyx_codeobj__828 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_polyoid, 4561, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__828)) __PYX_ERR(0, 4561, __pyx_L1_error)
  __pyx_tuple__829 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__829)) __PYX_ERR(0, 4561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__829);
  __Pyx_GIVEREF(__pyx_tuple__829);

  /* "pysndlib/generators.pyx":4572
 * # look at this later
 * #cpdef cython.double polyoid_env(clm.mus_any gen, cython.double fm=0.0, amps, phases, original_data):
 * cpdef cython.bint is_polyoid(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an polyoid
 */
  __pyx_codeobj__830 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_polyoid, 4572, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__830)) __PYX_ERR(0, 4572, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4581
 *     return clm.is_polywave(gen) and gen.mus_channel == clm.Polynomial.BOTH_KINDS
 * 
 * cpdef polyoid_tn(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_xcoeffs
 * 
 */
  __pyx_codeobj__831 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_polyoid_tn, 4581, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__831)) __PYX_ERR(0, 4581, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4584
 *     return gen.mus_xcoeffs
 * 
 * cpdef polyoid_un(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_ycoeffs
 * 
 */
  __pyx_codeobj__832 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_polyoid_un, 4584, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__832)) __PYX_ERR(0, 4584, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4608
 *         self.frequency = clm.hz2radians(frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 */
  __pyx_codeobj__833 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__74, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4608, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__833)) __PYX_ERR(0, 4608, __pyx_L1_error)
  __pyx_tuple__834 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__834)) __PYX_ERR(0, 4608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__834);
  __Pyx_GIVEREF(__pyx_tuple__834);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__835 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__835)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)
 */
  __pyx_codeobj__836 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__836)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4615
 * 
 * 
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)
 */
  __pyx_codeobj__837 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__286, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_tanhsin, 4615, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__837)) __PYX_ERR(0, 4615, __pyx_L1_error)
  __pyx_tuple__838 = PyTuple_Pack(2, __pyx_int_0, __pyx_float_1_); if (unlikely(!__pyx_tuple__838)) __PYX_ERR(0, 4615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__838);
  __Pyx_GIVEREF(__pyx_tuple__838);

  /* "pysndlib/generators.pyx":4619
 *     return Tanhsin(frequency, r)
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns tanh(r*sin) which approaches a square wave as r increases.
 */
  __pyx_codeobj__839 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_tanhsin, 4619, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__839)) __PYX_ERR(0, 4619, __pyx_L1_error)
  __pyx_tuple__840 = PyTuple_Pack(1, __pyx_float_0_); if (unlikely(!__pyx_tuple__840)) __PYX_ERR(0, 4619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__840);
  __Pyx_GIVEREF(__pyx_tuple__840);

  /* "pysndlib/generators.pyx":4629
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_tanhsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an tanhsin
 */
  __pyx_codeobj__841 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_tanhsin, 4629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__841)) __PYX_ERR(0, 4629, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4709
 *         self.outctr = self.n + 1
 * 
 *     cpdef cython.double next(self, cython.double x=0):             # <<<<<<<<<<<<<<
 *         new_data = False
 *         cdef cython.long i = 0
 */
  __pyx_tuple__842 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_x); if (unlikely(!__pyx_tuple__842)) __PYX_ERR(0, 4709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__842);
  __Pyx_GIVEREF(__pyx_tuple__842);
  __pyx_codeobj__843 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__842, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_next, 4709, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__843)) __PYX_ERR(0, 4709, __pyx_L1_error)
  __pyx_tuple__844 = PyTuple_Pack(1, __pyx_float_0_0); if (unlikely(!__pyx_tuple__844)) __PYX_ERR(0, 4709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__844);
  __Pyx_GIVEREF(__pyx_tuple__844);

  /* "pysndlib/generators.pyx":4748
 *         return self.im
 * 
 *     cpdef mus_run(self, arg1, arg2):             # <<<<<<<<<<<<<<
 *         self.next()
 * 
 */
  __pyx_tuple__845 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_arg1, __pyx_n_s_arg2); if (unlikely(!__pyx_tuple__845)) __PYX_ERR(0, 4748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__845);
  __Pyx_GIVEREF(__pyx_tuple__845);
  __pyx_codeobj__846 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__845, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_mus_run, 4748, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__846)) __PYX_ERR(0, 4748, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_codeobj__847 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 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_stringsource, __pyx_n_s_reduce_cython, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__847)) __PYX_ERR(1, 1, __pyx_L1_error)

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)
 */
  __pyx_codeobj__848 = (PyObject*)__Pyx_PyCode_New(2, 0, 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_stringsource, __pyx_n_s_setstate_cython, 16, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__848)) __PYX_ERR(1, 16, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4751
 *         self.next()
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 */
  __pyx_tuple__849 = PyTuple_Pack(4, __pyx_n_s_reader, __pyx_n_s_n, __pyx_n_s_hop, __pyx_n_s_outctr); if (unlikely(!__pyx_tuple__849)) __PYX_ERR(0, 4751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__849);
  __Pyx_GIVEREF(__pyx_tuple__849);
  __pyx_codeobj__850 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__849, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_src_pysndlib_generators_pyx, __pyx_n_s_make_moving_fft, 4751, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__850)) __PYX_ERR(0, 4751, __pyx_L1_error)
  __pyx_tuple__851 = PyTuple_Pack(3, __pyx_int_512, __pyx_int_128, __pyx_int_0); if (unlikely(!__pyx_tuple__851)) __PYX_ERR(0, 4751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__851);
  __Pyx_GIVEREF(__pyx_tuple__851);

  /* "pysndlib/generators.pyx":4754
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):             # <<<<<<<<<<<<<<
 *     return gen.next()
 * 
 */
  __pyx_codeobj__852 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_moving_fft, 4754, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__852)) __PYX_ERR(0, 4754, __pyx_L1_error)

  /* "pysndlib/generators.pyx":4757
 *     return gen.next()
 * 
 * cpdef cython.bint is_moving_fft(gen):             # <<<<<<<<<<<<<<
 *     return isinstance(gen, MovingFFT)
 * 
 */
  __pyx_codeobj__853 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 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_src_pysndlib_generators_pyx, __pyx_n_s_is_moving_fft, 4757, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__853)) __PYX_ERR(0, 4757, __pyx_L1_error)

  /* "(tree fragment)":1
 * def __pyx_unpickle_CLMGenerator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_tuple__854 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__854)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__854);
  __Pyx_GIVEREF(__pyx_tuple__854);
  __pyx_codeobj__855 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_CLMGenerator, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__855)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__856 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__856)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__857 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nxysin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__857)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__858 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nxycos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__858)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__859 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nxy1cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__859)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__860 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nxy1sin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__860)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__861 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Noddsin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__861)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__862 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Noddcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__862)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__863 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Noddssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__863)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__864 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ncos2, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__864)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__865 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ncos4, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__865)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__866 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Npcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__866)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__867 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ncos5, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__867)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__868 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nsin5, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__868)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__869 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nrcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__869)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__870 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nrssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__870)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__871 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nkssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__871)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__872 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nsincos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__872)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__873 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_N1cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__873)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__874 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Npos1cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__874)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__875 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Npos3cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__875)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__876 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__876)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__877 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__877)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__878 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rxysin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__878)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__879 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rxycos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__879)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__880 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_SafeRxycos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__880)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__881 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Ercos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__881)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__882 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Erssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__882)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__883 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_R2cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__883)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__884 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_R2ssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__884)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__885 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Eoddcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__885)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__886 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rkcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__886)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__887 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rksin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__887)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__888 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rkssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__888)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__889 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rkfcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__889)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__890 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rkfssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__890)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__891 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_R2kfcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__891)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__892 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_K2sin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__892)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__893 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_K2cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__893)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__894 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_K2ssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__894)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__895 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Dblsum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__895)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__896 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Rkoddssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__896)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__897 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Krksin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__897)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__898 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Absin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__898)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__899 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Abcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__899)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__900 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_R2k2cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__900)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__901 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Blsaw, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__901)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__902 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Asyfm, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__902)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__903 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Bess, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__903)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__904 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Jjcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__904)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__905 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_J0evencos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__905)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__906 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_J2cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__906)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__907 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Jpcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__907)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__908 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Jncos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__908)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__909 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_J0j1cos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__909)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__910 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Jycos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__910)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__911 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Jcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__911)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__912 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Blackman, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__912)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__913 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Fmssb, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__913)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__914 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_K3sin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__914)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__915 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Izcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__915)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__916 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AdjustableSquareW, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__916)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__917 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AdjustableTriangl, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__917)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__918 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AdjustableSawtoot, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__918)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__919 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_AdjustableOscil, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__919)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__920 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_RoundInterp, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__920)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__921 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Nchoosekcos, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__921)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__922 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_SincTrain, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__922)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__923 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_PinkNoise, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__923)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__924 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_BrownNoise, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__924)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__925 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_GreenNoise, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__925)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__926 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_GreenNoiseInterp, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__926)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__927 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MovingSum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__927)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__928 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MovingVariance, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__928)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__929 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MovingRMS, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__929)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__930 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MovingLength, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__930)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__931 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_WeightedMovingAve, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__931)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__932 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_ExponentiallyWeig, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__932)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__933 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Tanhsin, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__933)) __PYX_ERR(1, 1, __pyx_L1_error)
  __pyx_codeobj__934 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__854, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_MovingFFT, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__934)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}
/* #### Code section: init_constants ### */

static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
  if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
  __pyx_float__0 = PyFloat_FromDouble(.0); if (unlikely(!__pyx_float__0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__5 = PyFloat_FromDouble(.5); if (unlikely(!__pyx_float__5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_ = PyFloat_FromDouble(1.); if (unlikely(!__pyx_float_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_3_ = PyFloat_FromDouble(3.); if (unlikely(!__pyx_float_3_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__25 = PyFloat_FromDouble(.25); if (unlikely(!__pyx_float__25)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__54 = PyFloat_FromDouble(.54); if (unlikely(!__pyx_float__54)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_5 = PyFloat_FromDouble(0.5); if (unlikely(!__pyx_float_0_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_float_1_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_2_0 = PyFloat_FromDouble(2.0); if (unlikely(!__pyx_float_2_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_2_5 = PyFloat_FromDouble(2.5); if (unlikely(!__pyx_float_2_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_3_0 = PyFloat_FromDouble(3.0); if (unlikely(!__pyx_float_3_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_4_0 = PyFloat_FromDouble(4.0); if (unlikely(!__pyx_float_4_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_5_0 = PyFloat_FromDouble(5.0); if (unlikely(!__pyx_float_5_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__001 = PyFloat_FromDouble(.001); if (unlikely(!__pyx_float__001)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_54 = PyFloat_FromDouble(0.54); if (unlikely(!__pyx_float_0_54)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1eneg_9 = PyFloat_FromDouble(1e-9); if (unlikely(!__pyx_float_1eneg_9)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_248 = PyFloat_FromDouble(0.248); if (unlikely(!__pyx_float_0_248)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_252 = PyFloat_FromDouble(0.252); if (unlikely(!__pyx_float_0_252)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_257 = PyFloat_FromDouble(0.257); if (unlikely(!__pyx_float_0_257)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_262 = PyFloat_FromDouble(0.262); if (unlikely(!__pyx_float_0_262)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_267 = PyFloat_FromDouble(0.267); if (unlikely(!__pyx_float_0_267)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_273 = PyFloat_FromDouble(0.273); if (unlikely(!__pyx_float_0_273)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_279 = PyFloat_FromDouble(0.279); if (unlikely(!__pyx_float_0_279)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_286 = PyFloat_FromDouble(0.286); if (unlikely(!__pyx_float_0_286)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_294 = PyFloat_FromDouble(0.294); if (unlikely(!__pyx_float_0_294)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_303 = PyFloat_FromDouble(0.303); if (unlikely(!__pyx_float_0_303)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_313 = PyFloat_FromDouble(0.313); if (unlikely(!__pyx_float_0_313)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_325 = PyFloat_FromDouble(0.325); if (unlikely(!__pyx_float_0_325)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_338 = PyFloat_FromDouble(0.338); if (unlikely(!__pyx_float_0_338)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_355 = PyFloat_FromDouble(0.355); if (unlikely(!__pyx_float_0_355)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_375 = PyFloat_FromDouble(0.375); if (unlikely(!__pyx_float_0_375)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_400 = PyFloat_FromDouble(0.400); if (unlikely(!__pyx_float_0_400)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_435 = PyFloat_FromDouble(0.435); if (unlikely(!__pyx_float_0_435)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_487 = PyFloat_FromDouble(0.487); if (unlikely(!__pyx_float_0_487)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_582 = PyFloat_FromDouble(0.582); if (unlikely(!__pyx_float_0_582)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_000 = PyFloat_FromDouble(1.000); if (unlikely(!__pyx_float_1_000)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00001 = PyFloat_FromDouble(.00001); if (unlikely(!__pyx_float__00001)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__08333 = PyFloat_FromDouble(.08333); if (unlikely(!__pyx_float__08333)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__99999 = PyFloat_FromDouble(.99999); if (unlikely(!__pyx_float__99999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_0eneg_6 = PyFloat_FromDouble(1.0e-6); if (unlikely(!__pyx_float_1_0eneg_6)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_1_0eneg_9 = PyFloat_FromDouble(1.0e-9); if (unlikely(!__pyx_float_1_0eneg_9)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__201416 = PyFloat_FromDouble(.201416); if (unlikely(!__pyx_float__201416)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__293557 = PyFloat_FromDouble(.293557); if (unlikely(!__pyx_float__293557)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__999999 = PyFloat_FromDouble(.999999); if (unlikely(!__pyx_float__999999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_14128 = PyFloat_FromDouble(0.14128); if (unlikely(!__pyx_float_0_14128)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_20762 = PyFloat_FromDouble(0.20762); if (unlikely(!__pyx_float_0_20762)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_20844 = PyFloat_FromDouble(0.20844); if (unlikely(!__pyx_float_0_20844)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_29145 = PyFloat_FromDouble(0.29145); if (unlikely(!__pyx_float_0_29145)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_35875 = PyFloat_FromDouble(0.35875); if (unlikely(!__pyx_float_0_35875)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_42323 = PyFloat_FromDouble(0.42323); if (unlikely(!__pyx_float_0_42323)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_48829 = PyFloat_FromDouble(0.48829); if (unlikely(!__pyx_float_0_48829)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2151527 = PyFloat_FromDouble(.2151527); if (unlikely(!__pyx_float__2151527)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2180041 = PyFloat_FromDouble(.2180041); if (unlikely(!__pyx_float__2180041)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2257345 = PyFloat_FromDouble(.2257345); if (unlikely(!__pyx_float__2257345)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2288396 = PyFloat_FromDouble(.2288396); if (unlikely(!__pyx_float__2288396)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2358242 = PyFloat_FromDouble(.2358242); if (unlikely(!__pyx_float__2358242)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2384331 = PyFloat_FromDouble(.2384331); if (unlikely(!__pyx_float__2384331)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2401294 = PyFloat_FromDouble(.2401294); if (unlikely(!__pyx_float__2401294)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2424243 = PyFloat_FromDouble(.2424243); if (unlikely(!__pyx_float__2424243)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2533176 = PyFloat_FromDouble(.2533176); if (unlikely(!__pyx_float__2533176)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__2712203 = PyFloat_FromDouble(.2712203); if (unlikely(!__pyx_float__2712203)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__9999999 = PyFloat_FromDouble(.9999999); if (unlikely(!__pyx_float__9999999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_005149 = PyFloat_FromDouble(0.005149); if (unlikely(!__pyx_float_0_005149)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_041194 = PyFloat_FromDouble(0.041194); if (unlikely(!__pyx_float_0_041194)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_078279 = PyFloat_FromDouble(0.078279); if (unlikely(!__pyx_float_0_078279)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_084037 = PyFloat_FromDouble(0.084037); if (unlikely(!__pyx_float_0_084037)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_287333 = PyFloat_FromDouble(0.287333); if (unlikely(!__pyx_float_0_287333)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_0_375696 = PyFloat_FromDouble(0.375696); if (unlikely(!__pyx_float_0_375696)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00502619 = PyFloat_FromDouble(.00502619); if (unlikely(!__pyx_float__00502619)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__03325916 = PyFloat_FromDouble(.03325916); if (unlikely(!__pyx_float__03325916)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__04077422 = PyFloat_FromDouble(.04077422); if (unlikely(!__pyx_float__04077422)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__010761867 = PyFloat_FromDouble(.010761867); if (unlikely(!__pyx_float__010761867)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__017735924 = PyFloat_FromDouble(.017735924); if (unlikely(!__pyx_float__017735924)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__025373955 = PyFloat_FromDouble(.025373955); if (unlikely(!__pyx_float__025373955)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__0008751673 = PyFloat_FromDouble(.0008751673); if (unlikely(!__pyx_float__0008751673)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__0016398069 = PyFloat_FromDouble(.0016398069); if (unlikely(!__pyx_float__0016398069)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00001368088 = PyFloat_FromDouble(.00001368088); if (unlikely(!__pyx_float__00001368088)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00010677413 = PyFloat_FromDouble(.00010677413); if (unlikely(!__pyx_float__00010677413)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00036856041 = PyFloat_FromDouble(.00036856041); if (unlikely(!__pyx_float__00036856041)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__000001710716 = PyFloat_FromDouble(.000001710716); if (unlikely(!__pyx_float__000001710716)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__000008884663 = PyFloat_FromDouble(.000008884663); if (unlikely(!__pyx_float__000008884663)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__0000001161808 = PyFloat_FromDouble(.0000001161808); if (unlikely(!__pyx_float__0000001161808)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float__00000000084824 = PyFloat_FromDouble(.00000000084824); if (unlikely(!__pyx_float__00000000084824)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_1_ = PyFloat_FromDouble(-1.); if (unlikely(!__pyx_float_neg_1_)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_0_46 = PyFloat_FromDouble(-0.46); if (unlikely(!__pyx_float_neg_0_46)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__99999 = PyFloat_FromDouble(-.99999); if (unlikely(!__pyx_float_neg__99999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__047926 = PyFloat_FromDouble(-.047926); if (unlikely(!__pyx_float_neg__047926)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__451935 = PyFloat_FromDouble(-.451935); if (unlikely(!__pyx_float_neg__451935)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__999999 = PyFloat_FromDouble(-.999999); if (unlikely(!__pyx_float_neg__999999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_0_01168 = PyFloat_FromDouble(-0.01168); if (unlikely(!__pyx_float_neg_0_01168)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_0_05190 = PyFloat_FromDouble(-0.05190); if (unlikely(!__pyx_float_neg_0_05190)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_0_44716 = PyFloat_FromDouble(-0.44716); if (unlikely(!__pyx_float_neg_0_44716)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg_0_49755 = PyFloat_FromDouble(-0.49755); if (unlikely(!__pyx_float_neg_0_49755)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0657853 = PyFloat_FromDouble(-.0657853); if (unlikely(!__pyx_float_neg__0657853)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__1070542 = PyFloat_FromDouble(-.1070542); if (unlikely(!__pyx_float_neg__1070542)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__1166907 = PyFloat_FromDouble(-.1166907); if (unlikely(!__pyx_float_neg__1166907)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__3731348 = PyFloat_FromDouble(-.3731348); if (unlikely(!__pyx_float_neg__3731348)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__3860122 = PyFloat_FromDouble(-.3860122); if (unlikely(!__pyx_float_neg__3860122)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__4005545 = PyFloat_FromDouble(-.4005545); if (unlikely(!__pyx_float_neg__4005545)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__4163269 = PyFloat_FromDouble(-.4163269); if (unlikely(!__pyx_float_neg__4163269)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__4334446 = PyFloat_FromDouble(-.4334446); if (unlikely(!__pyx_float_neg__4334446)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__00687337 = PyFloat_FromDouble(-.00687337); if (unlikely(!__pyx_float_neg__00687337)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__01000904 = PyFloat_FromDouble(-.01000904); if (unlikely(!__pyx_float_neg__01000904)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__08157508 = PyFloat_FromDouble(-.08157508); if (unlikely(!__pyx_float_neg__08157508)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__09527918 = PyFloat_FromDouble(-.09527918); if (unlikely(!__pyx_float_neg__09527918)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__000137555 = PyFloat_FromDouble(-.000137555); if (unlikely(!__pyx_float_neg__000137555)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0000012807 = PyFloat_FromDouble(-.0000012807); if (unlikely(!__pyx_float_neg__0000012807)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0000600859 = PyFloat_FromDouble(-.0000600859); if (unlikely(!__pyx_float_neg__0000600859)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0001651660 = PyFloat_FromDouble(-.0001651660); if (unlikely(!__pyx_float_neg__0001651660)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0007700127 = PyFloat_FromDouble(-.0007700127); if (unlikely(!__pyx_float_neg__0007700127)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0020967027 = PyFloat_FromDouble(-.0020967027); if (unlikely(!__pyx_float_neg__0020967027)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__0041524329 = PyFloat_FromDouble(-.0041524329); if (unlikely(!__pyx_float_neg__0041524329)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__00001384355 = PyFloat_FromDouble(-.00001384355); if (unlikely(!__pyx_float_neg__00001384355)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__000000193817 = PyFloat_FromDouble(-.000000193817); if (unlikely(!__pyx_float_neg__000000193817)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_float_neg__00000001027272 = PyFloat_FromDouble(-.00000001027272); if (unlikely(!__pyx_float_neg__00000001027272)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_100 = PyInt_FromLong(100); if (unlikely(!__pyx_int_100)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_4328264 = PyInt_FromLong(4328264L); if (unlikely(!__pyx_int_4328264)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_6431051 = PyInt_FromLong(6431051L); if (unlikely(!__pyx_int_6431051)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_7189371 = PyInt_FromLong(7189371L); if (unlikely(!__pyx_int_7189371)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_8089851 = PyInt_FromLong(8089851L); if (unlikely(!__pyx_int_8089851)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_8455662 = PyInt_FromLong(8455662L); if (unlikely(!__pyx_int_8455662)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_9011761 = PyInt_FromLong(9011761L); if (unlikely(!__pyx_int_9011761)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_9695810 = PyInt_FromLong(9695810L); if (unlikely(!__pyx_int_9695810)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_10165065 = PyInt_FromLong(10165065L); if (unlikely(!__pyx_int_10165065)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_14011399 = PyInt_FromLong(14011399L); if (unlikely(!__pyx_int_14011399)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_14828874 = PyInt_FromLong(14828874L); if (unlikely(!__pyx_int_14828874)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_14975952 = PyInt_FromLong(14975952L); if (unlikely(!__pyx_int_14975952)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_16473016 = PyInt_FromLong(16473016L); if (unlikely(!__pyx_int_16473016)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_17204615 = PyInt_FromLong(17204615L); if (unlikely(!__pyx_int_17204615)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_19846739 = PyInt_FromLong(19846739L); if (unlikely(!__pyx_int_19846739)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_22572774 = PyInt_FromLong(22572774L); if (unlikely(!__pyx_int_22572774)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_24494209 = PyInt_FromLong(24494209L); if (unlikely(!__pyx_int_24494209)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_25414310 = PyInt_FromLong(25414310L); if (unlikely(!__pyx_int_25414310)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_27861694 = PyInt_FromLong(27861694L); if (unlikely(!__pyx_int_27861694)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_28216571 = PyInt_FromLong(28216571L); if (unlikely(!__pyx_int_28216571)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_29168483 = PyInt_FromLong(29168483L); if (unlikely(!__pyx_int_29168483)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_29803235 = PyInt_FromLong(29803235L); if (unlikely(!__pyx_int_29803235)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_33150030 = PyInt_FromLong(33150030L); if (unlikely(!__pyx_int_33150030)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_35482709 = PyInt_FromLong(35482709L); if (unlikely(!__pyx_int_35482709)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_35949077 = PyInt_FromLong(35949077L); if (unlikely(!__pyx_int_35949077)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_36267824 = PyInt_FromLong(36267824L); if (unlikely(!__pyx_int_36267824)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_38153256 = PyInt_FromLong(38153256L); if (unlikely(!__pyx_int_38153256)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_38339493 = PyInt_FromLong(38339493L); if (unlikely(!__pyx_int_38339493)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_39153840 = PyInt_FromLong(39153840L); if (unlikely(!__pyx_int_39153840)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_43452093 = PyInt_FromLong(43452093L); if (unlikely(!__pyx_int_43452093)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_44313570 = PyInt_FromLong(44313570L); if (unlikely(!__pyx_int_44313570)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_48941122 = PyInt_FromLong(48941122L); if (unlikely(!__pyx_int_48941122)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_49475411 = PyInt_FromLong(49475411L); if (unlikely(!__pyx_int_49475411)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_56324287 = PyInt_FromLong(56324287L); if (unlikely(!__pyx_int_56324287)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_56550309 = PyInt_FromLong(56550309L); if (unlikely(!__pyx_int_56550309)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_57753464 = PyInt_FromLong(57753464L); if (unlikely(!__pyx_int_57753464)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_58026155 = PyInt_FromLong(58026155L); if (unlikely(!__pyx_int_58026155)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_60215003 = PyInt_FromLong(60215003L); if (unlikely(!__pyx_int_60215003)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_61524905 = PyInt_FromLong(61524905L); if (unlikely(!__pyx_int_61524905)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_62874594 = PyInt_FromLong(62874594L); if (unlikely(!__pyx_int_62874594)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_64927267 = PyInt_FromLong(64927267L); if (unlikely(!__pyx_int_64927267)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_75984122 = PyInt_FromLong(75984122L); if (unlikely(!__pyx_int_75984122)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_81718022 = PyInt_FromLong(81718022L); if (unlikely(!__pyx_int_81718022)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_82299867 = PyInt_FromLong(82299867L); if (unlikely(!__pyx_int_82299867)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_83731376 = PyInt_FromLong(83731376L); if (unlikely(!__pyx_int_83731376)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_83943461 = PyInt_FromLong(83943461L); if (unlikely(!__pyx_int_83943461)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_89407914 = PyInt_FromLong(89407914L); if (unlikely(!__pyx_int_89407914)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_90560465 = PyInt_FromLong(90560465L); if (unlikely(!__pyx_int_90560465)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_90806753 = PyInt_FromLong(90806753L); if (unlikely(!__pyx_int_90806753)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_93173464 = PyInt_FromLong(93173464L); if (unlikely(!__pyx_int_93173464)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_93234418 = PyInt_FromLong(93234418L); if (unlikely(!__pyx_int_93234418)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_94252077 = PyInt_FromLong(94252077L); if (unlikely(!__pyx_int_94252077)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_95048614 = PyInt_FromLong(95048614L); if (unlikely(!__pyx_int_95048614)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_96942813 = PyInt_FromLong(96942813L); if (unlikely(!__pyx_int_96942813)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_97846830 = PyInt_FromLong(97846830L); if (unlikely(!__pyx_int_97846830)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_99923986 = PyInt_FromLong(99923986L); if (unlikely(!__pyx_int_99923986)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_100967284 = PyInt_FromLong(100967284L); if (unlikely(!__pyx_int_100967284)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_101808146 = PyInt_FromLong(101808146L); if (unlikely(!__pyx_int_101808146)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_103203137 = PyInt_FromLong(103203137L); if (unlikely(!__pyx_int_103203137)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_103886015 = PyInt_FromLong(103886015L); if (unlikely(!__pyx_int_103886015)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_105646596 = PyInt_FromLong(105646596L); if (unlikely(!__pyx_int_105646596)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_105786433 = PyInt_FromLong(105786433L); if (unlikely(!__pyx_int_105786433)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_108802371 = PyInt_FromLong(108802371L); if (unlikely(!__pyx_int_108802371)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_109999513 = PyInt_FromLong(109999513L); if (unlikely(!__pyx_int_109999513)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_114002020 = PyInt_FromLong(114002020L); if (unlikely(!__pyx_int_114002020)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_117047762 = PyInt_FromLong(117047762L); if (unlikely(!__pyx_int_117047762)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_118435233 = PyInt_FromLong(118435233L); if (unlikely(!__pyx_int_118435233)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_120077725 = PyInt_FromLong(120077725L); if (unlikely(!__pyx_int_120077725)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_121268523 = PyInt_FromLong(121268523L); if (unlikely(!__pyx_int_121268523)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_121669262 = PyInt_FromLong(121669262L); if (unlikely(!__pyx_int_121669262)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_123870349 = PyInt_FromLong(123870349L); if (unlikely(!__pyx_int_123870349)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_127044661 = PyInt_FromLong(127044661L); if (unlikely(!__pyx_int_127044661)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_127565017 = PyInt_FromLong(127565017L); if (unlikely(!__pyx_int_127565017)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_131487801 = PyInt_FromLong(131487801L); if (unlikely(!__pyx_int_131487801)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_134697328 = PyInt_FromLong(134697328L); if (unlikely(!__pyx_int_134697328)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_134779209 = PyInt_FromLong(134779209L); if (unlikely(!__pyx_int_134779209)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_135827999 = PyInt_FromLong(135827999L); if (unlikely(!__pyx_int_135827999)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_136014572 = PyInt_FromLong(136014572L); if (unlikely(!__pyx_int_136014572)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_138134742 = PyInt_FromLong(138134742L); if (unlikely(!__pyx_int_138134742)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_139350794 = PyInt_FromLong(139350794L); if (unlikely(!__pyx_int_139350794)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_140324773 = PyInt_FromLong(140324773L); if (unlikely(!__pyx_int_140324773)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_143031090 = PyInt_FromLong(143031090L); if (unlikely(!__pyx_int_143031090)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_144439432 = PyInt_FromLong(144439432L); if (unlikely(!__pyx_int_144439432)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_146847058 = PyInt_FromLong(146847058L); if (unlikely(!__pyx_int_146847058)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_147363750 = PyInt_FromLong(147363750L); if (unlikely(!__pyx_int_147363750)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_148272179 = PyInt_FromLong(148272179L); if (unlikely(!__pyx_int_148272179)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_149852974 = PyInt_FromLong(149852974L); if (unlikely(!__pyx_int_149852974)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_150399202 = PyInt_FromLong(150399202L); if (unlikely(!__pyx_int_150399202)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_150798460 = PyInt_FromLong(150798460L); if (unlikely(!__pyx_int_150798460)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_150816533 = PyInt_FromLong(150816533L); if (unlikely(!__pyx_int_150816533)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_150941660 = PyInt_FromLong(150941660L); if (unlikely(!__pyx_int_150941660)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_152846879 = PyInt_FromLong(152846879L); if (unlikely(!__pyx_int_152846879)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_153277992 = PyInt_FromLong(153277992L); if (unlikely(!__pyx_int_153277992)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_155011743 = PyInt_FromLong(155011743L); if (unlikely(!__pyx_int_155011743)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_158694560 = PyInt_FromLong(158694560L); if (unlikely(!__pyx_int_158694560)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_160277609 = PyInt_FromLong(160277609L); if (unlikely(!__pyx_int_160277609)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_160593119 = PyInt_FromLong(160593119L); if (unlikely(!__pyx_int_160593119)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_165472083 = PyInt_FromLong(165472083L); if (unlikely(!__pyx_int_165472083)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_166068038 = PyInt_FromLong(166068038L); if (unlikely(!__pyx_int_166068038)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_169112353 = PyInt_FromLong(169112353L); if (unlikely(!__pyx_int_169112353)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_170471409 = PyInt_FromLong(170471409L); if (unlikely(!__pyx_int_170471409)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_171232032 = PyInt_FromLong(171232032L); if (unlikely(!__pyx_int_171232032)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_173110512 = PyInt_FromLong(173110512L); if (unlikely(!__pyx_int_173110512)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_174562005 = PyInt_FromLong(174562005L); if (unlikely(!__pyx_int_174562005)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_175203516 = PyInt_FromLong(175203516L); if (unlikely(!__pyx_int_175203516)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_177559970 = PyInt_FromLong(177559970L); if (unlikely(!__pyx_int_177559970)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_178322785 = PyInt_FromLong(178322785L); if (unlikely(!__pyx_int_178322785)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_178981920 = PyInt_FromLong(178981920L); if (unlikely(!__pyx_int_178981920)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_180736322 = PyInt_FromLong(180736322L); if (unlikely(!__pyx_int_180736322)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_184566456 = PyInt_FromLong(184566456L); if (unlikely(!__pyx_int_184566456)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_188214648 = PyInt_FromLong(188214648L); if (unlikely(!__pyx_int_188214648)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_190776647 = PyInt_FromLong(190776647L); if (unlikely(!__pyx_int_190776647)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_191989756 = PyInt_FromLong(191989756L); if (unlikely(!__pyx_int_191989756)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_193049109 = PyInt_FromLong(193049109L); if (unlikely(!__pyx_int_193049109)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_196047615 = PyInt_FromLong(196047615L); if (unlikely(!__pyx_int_196047615)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_199292263 = PyInt_FromLong(199292263L); if (unlikely(!__pyx_int_199292263)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_202207497 = PyInt_FromLong(202207497L); if (unlikely(!__pyx_int_202207497)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_203726100 = PyInt_FromLong(203726100L); if (unlikely(!__pyx_int_203726100)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_208169003 = PyInt_FromLong(208169003L); if (unlikely(!__pyx_int_208169003)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_209685500 = PyInt_FromLong(209685500L); if (unlikely(!__pyx_int_209685500)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_213175882 = PyInt_FromLong(213175882L); if (unlikely(!__pyx_int_213175882)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_217886057 = PyInt_FromLong(217886057L); if (unlikely(!__pyx_int_217886057)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_222419149 = PyInt_FromLong(222419149L); if (unlikely(!__pyx_int_222419149)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_227304315 = PyInt_FromLong(227304315L); if (unlikely(!__pyx_int_227304315)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_228825662 = PyInt_FromLong(228825662L); if (unlikely(!__pyx_int_228825662)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_231905918 = PyInt_FromLong(231905918L); if (unlikely(!__pyx_int_231905918)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_233007199 = PyInt_FromLong(233007199L); if (unlikely(!__pyx_int_233007199)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_234936116 = PyInt_FromLong(234936116L); if (unlikely(!__pyx_int_234936116)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_235111476 = PyInt_FromLong(235111476L); if (unlikely(!__pyx_int_235111476)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_236300599 = PyInt_FromLong(236300599L); if (unlikely(!__pyx_int_236300599)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_237498805 = PyInt_FromLong(237498805L); if (unlikely(!__pyx_int_237498805)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_238530126 = PyInt_FromLong(238530126L); if (unlikely(!__pyx_int_238530126)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_238750788 = PyInt_FromLong(238750788L); if (unlikely(!__pyx_int_238750788)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_241904987 = PyInt_FromLong(241904987L); if (unlikely(!__pyx_int_241904987)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_242608964 = PyInt_FromLong(242608964L); if (unlikely(!__pyx_int_242608964)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_243792574 = PyInt_FromLong(243792574L); if (unlikely(!__pyx_int_243792574)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_244411994 = PyInt_FromLong(244411994L); if (unlikely(!__pyx_int_244411994)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_246568357 = PyInt_FromLong(246568357L); if (unlikely(!__pyx_int_246568357)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_246844032 = PyInt_FromLong(246844032L); if (unlikely(!__pyx_int_246844032)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_254343081 = PyInt_FromLong(254343081L); if (unlikely(!__pyx_int_254343081)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_255285684 = PyInt_FromLong(255285684L); if (unlikely(!__pyx_int_255285684)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_255539553 = PyInt_FromLong(255539553L); if (unlikely(!__pyx_int_255539553)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_258104651 = PyInt_FromLong(258104651L); if (unlikely(!__pyx_int_258104651)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_263069812 = PyInt_FromLong(263069812L); if (unlikely(!__pyx_int_263069812)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_263863157 = PyInt_FromLong(263863157L); if (unlikely(!__pyx_int_263863157)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_266373226 = PyInt_FromLong(266373226L); if (unlikely(!__pyx_int_266373226)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_266943092 = PyInt_FromLong(266943092L); if (unlikely(!__pyx_int_266943092)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_267403128 = PyInt_FromLong(267403128L); if (unlikely(!__pyx_int_267403128)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  return 0;
  __pyx_L1_error:;
  return -1;
}
/* #### Code section: init_globals ### */

static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
  return 0;
}
/* #### Code section: init_module ### */

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("nssb", (void (*)(void))__pyx_f_8pysndlib_10generators_nssb, "double (struct __pyx_obj_8pysndlib_10generators_Nssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nxysin", (void (*)(void))__pyx_f_8pysndlib_10generators_nxysin, "double (struct __pyx_obj_8pysndlib_10generators_Nxysin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxysin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nxysin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nxysin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_nxycos, "double (struct __pyx_obj_8pysndlib_10generators_Nxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxycos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nxycos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nxy1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_nxy1cos, "double (struct __pyx_obj_8pysndlib_10generators_Nxy1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nxy1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nxy1cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nxy1sin", (void (*)(void))__pyx_f_8pysndlib_10generators_nxy1sin, "double (struct __pyx_obj_8pysndlib_10generators_Nxy1sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nxy1sin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nxy1sin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nxy1sin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("noddcos", (void (*)(void))__pyx_f_8pysndlib_10generators_noddcos, "double (struct __pyx_obj_8pysndlib_10generators_Noddcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_noddcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_noddcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("noddssb", (void (*)(void))__pyx_f_8pysndlib_10generators_noddssb, "double (struct __pyx_obj_8pysndlib_10generators_Noddssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_noddssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_noddssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_noddssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncos2", (void (*)(void))__pyx_f_8pysndlib_10generators_ncos2, "double (struct __pyx_obj_8pysndlib_10generators_Ncos2 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos2 *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_ncos2", (void (*)(void))__pyx_f_8pysndlib_10generators_is_ncos2, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncos4", (void (*)(void))__pyx_f_8pysndlib_10generators_ncos4, "double (struct __pyx_obj_8pysndlib_10generators_Ncos4 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos4 *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_ncos4", (void (*)(void))__pyx_f_8pysndlib_10generators_is_ncos4, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("npcos", (void (*)(void))__pyx_f_8pysndlib_10generators_npcos, "double (struct __pyx_obj_8pysndlib_10generators_Npcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_npcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_npcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ncos5", (void (*)(void))__pyx_f_8pysndlib_10generators_ncos5, "double (struct __pyx_obj_8pysndlib_10generators_Ncos5 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ncos5 *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_ncos5", (void (*)(void))__pyx_f_8pysndlib_10generators_is_ncos5, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nsin5", (void (*)(void))__pyx_f_8pysndlib_10generators_nsin5, "double (struct __pyx_obj_8pysndlib_10generators_Nsin5 *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsin5 *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nsin5", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nsin5, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrsin", (void (*)(void))__pyx_f_8pysndlib_10generators_nrsin, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrsin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nrsin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nrsin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrcos", (void (*)(void))__pyx_f_8pysndlib_10generators_nrcos, "double (struct __pyx_obj_8pysndlib_10generators_Nrcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nrcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nrcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrssb", (void (*)(void))__pyx_f_8pysndlib_10generators_nrssb, "double (struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nrssb_interp", (void (*)(void))__pyx_f_8pysndlib_10generators_nrssb_interp, "double (struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nrssb_interp *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nrssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nrssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nkssb", (void (*)(void))__pyx_f_8pysndlib_10generators_nkssb, "double (struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nkssb_interp", (void (*)(void))__pyx_f_8pysndlib_10generators_nkssb_interp, "double (struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nkssb_interp *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nkssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nkssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nsincos", (void (*)(void))__pyx_f_8pysndlib_10generators_nsincos, "double (struct __pyx_obj_8pysndlib_10generators_Nsincos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nsincos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nsincos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nsincos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("n1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_n1cos, "double (struct __pyx_obj_8pysndlib_10generators_N1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_n1cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_n1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_n1cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("npos1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_npos1cos, "double (struct __pyx_obj_8pysndlib_10generators_Npos1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos1cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_npos1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_npos1cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("npos3cos", (void (*)(void))__pyx_f_8pysndlib_10generators_npos3cos, "double (struct __pyx_obj_8pysndlib_10generators_Npos3cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_npos3cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_npos3cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_npos3cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rcos", (void (*)(void))__pyx_f_8pysndlib_10generators_rcos, "double (struct __pyx_obj_8pysndlib_10generators_Rcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rssb", (void (*)(void))__pyx_f_8pysndlib_10generators_rssb, "double (struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rssb_interp", (void (*)(void))__pyx_f_8pysndlib_10generators_rssb_interp, "double (struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rssb_interp *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rxysin", (void (*)(void))__pyx_f_8pysndlib_10generators_rxysin, "double (struct __pyx_obj_8pysndlib_10generators_Rxysin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxysin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rxysin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rxysin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_rxycos, "double (struct __pyx_obj_8pysndlib_10generators_Rxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rxycos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rxycos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("safe_rxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_safe_rxycos, "double (struct __pyx_obj_8pysndlib_10generators_SafeRxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_safe_rxycos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_safe_rxycos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_safe_rxycos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("ercos", (void (*)(void))__pyx_f_8pysndlib_10generators_ercos, "double (struct __pyx_obj_8pysndlib_10generators_Ercos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_ercos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_ercos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_ercos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("erssb", (void (*)(void))__pyx_f_8pysndlib_10generators_erssb, "double (struct __pyx_obj_8pysndlib_10generators_Erssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_erssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_erssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_erssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("r2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_r2cos, "double (struct __pyx_obj_8pysndlib_10generators_R2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_r2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_r2cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("r2ssb", (void (*)(void))__pyx_f_8pysndlib_10generators_r2ssb, "double (struct __pyx_obj_8pysndlib_10generators_R2ssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2ssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_r2ssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_r2ssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("eoddcos", (void (*)(void))__pyx_f_8pysndlib_10generators_eoddcos, "double (struct __pyx_obj_8pysndlib_10generators_Eoddcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_eoddcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_eoddcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_eoddcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rkcos", (void (*)(void))__pyx_f_8pysndlib_10generators_rkcos, "double (struct __pyx_obj_8pysndlib_10generators_Rkcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rkcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rkcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rksin", (void (*)(void))__pyx_f_8pysndlib_10generators_rksin, "double (struct __pyx_obj_8pysndlib_10generators_Rksin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rksin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rksin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rksin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rkfcos", (void (*)(void))__pyx_f_8pysndlib_10generators_rkfcos, "double (struct __pyx_obj_8pysndlib_10generators_Rkfcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rkfcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rkfcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rkfssb", (void (*)(void))__pyx_f_8pysndlib_10generators_rkfssb, "double (struct __pyx_obj_8pysndlib_10generators_Rkfssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkfssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rkfssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rkfssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("r2kfcos", (void (*)(void))__pyx_f_8pysndlib_10generators_r2kfcos, "double (struct __pyx_obj_8pysndlib_10generators_R2kfcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2kfcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_r2kfcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_r2kfcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k2sin", (void (*)(void))__pyx_f_8pysndlib_10generators_k2sin, "double (struct __pyx_obj_8pysndlib_10generators_K2sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2sin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_k2sin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_k2sin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_k2cos, "double (struct __pyx_obj_8pysndlib_10generators_K2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_k2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_k2cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k2ssb", (void (*)(void))__pyx_f_8pysndlib_10generators_k2ssb, "double (struct __pyx_obj_8pysndlib_10generators_K2ssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k2ssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_k2ssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_k2ssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("dblsum", (void (*)(void))__pyx_f_8pysndlib_10generators_dblsum, "double (struct __pyx_obj_8pysndlib_10generators_Dblsum *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_dblsum *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_dblsum", (void (*)(void))__pyx_f_8pysndlib_10generators_is_dblsum, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("rkoddssb", (void (*)(void))__pyx_f_8pysndlib_10generators_rkoddssb, "double (struct __pyx_obj_8pysndlib_10generators_Rkoddssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_rkoddssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_rkoddssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_rkoddssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("krksin", (void (*)(void))__pyx_f_8pysndlib_10generators_krksin, "double (struct __pyx_obj_8pysndlib_10generators_Krksin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_krksin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_krksin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_krksin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("absin", (void (*)(void))__pyx_f_8pysndlib_10generators_absin, "double (struct __pyx_obj_8pysndlib_10generators_Absin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_absin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_absin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_absin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("abcos", (void (*)(void))__pyx_f_8pysndlib_10generators_abcos, "double (struct __pyx_obj_8pysndlib_10generators_Abcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_abcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_abcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_abcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("r2k2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_r2k2cos, "double (struct __pyx_obj_8pysndlib_10generators_R2k2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_r2k2cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_r2k2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_r2k2cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("blsaw", (void (*)(void))__pyx_f_8pysndlib_10generators_blsaw, "double (struct __pyx_obj_8pysndlib_10generators_Blsaw *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blsaw *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_blsaw", (void (*)(void))__pyx_f_8pysndlib_10generators_is_blsaw, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("asyfm", (void (*)(void))__pyx_f_8pysndlib_10generators_asyfm, "double (struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("asyfm_i", (void (*)(void))__pyx_f_8pysndlib_10generators_asyfm_i, "double (struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_i *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("asyfm_j", (void (*)(void))__pyx_f_8pysndlib_10generators_asyfm_j, "double (struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_asyfm_j *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_asyfm", (void (*)(void))__pyx_f_8pysndlib_10generators_is_asyfm, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("bess", (void (*)(void))__pyx_f_8pysndlib_10generators_bess, "double (struct __pyx_obj_8pysndlib_10generators_Bess *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_bess *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_bess", (void (*)(void))__pyx_f_8pysndlib_10generators_is_bess, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("jjcos", (void (*)(void))__pyx_f_8pysndlib_10generators_jjcos, "double (struct __pyx_obj_8pysndlib_10generators_Jjcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jjcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_jjcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_jjcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("j0evencos", (void (*)(void))__pyx_f_8pysndlib_10generators_j0evencos, "double (struct __pyx_obj_8pysndlib_10generators_J0evencos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0evencos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_j0evencos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_j0evencos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("j2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_j2cos, "double (struct __pyx_obj_8pysndlib_10generators_J2cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j2cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_j2cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_j2cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("jpcos", (void (*)(void))__pyx_f_8pysndlib_10generators_jpcos, "double (struct __pyx_obj_8pysndlib_10generators_Jpcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jpcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_jpcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_jpcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("jncos", (void (*)(void))__pyx_f_8pysndlib_10generators_jncos, "double (struct __pyx_obj_8pysndlib_10generators_Jncos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jncos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_jncos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_jncos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("j0j1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_j0j1cos, "double (struct __pyx_obj_8pysndlib_10generators_J0j1cos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_j0j1cos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_j0j1cos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_j0j1cos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("jycos", (void (*)(void))__pyx_f_8pysndlib_10generators_jycos, "double (struct __pyx_obj_8pysndlib_10generators_Jycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jycos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_jycos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_jycos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("jcos", (void (*)(void))__pyx_f_8pysndlib_10generators_jcos, "double (struct __pyx_obj_8pysndlib_10generators_Jcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_jcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_jcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_jcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("blackman", (void (*)(void))__pyx_f_8pysndlib_10generators_blackman, "double (struct __pyx_obj_8pysndlib_10generators_Blackman *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_blackman *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_blackman", (void (*)(void))__pyx_f_8pysndlib_10generators_is_blackman, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("fmssb", (void (*)(void))__pyx_f_8pysndlib_10generators_fmssb, "double (struct __pyx_obj_8pysndlib_10generators_Fmssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_fmssb *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_fmssb", (void (*)(void))__pyx_f_8pysndlib_10generators_is_fmssb, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("k3sin", (void (*)(void))__pyx_f_8pysndlib_10generators_k3sin, "double (struct __pyx_obj_8pysndlib_10generators_K3sin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_k3sin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_k3sin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_k3sin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("izcos", (void (*)(void))__pyx_f_8pysndlib_10generators_izcos, "double (struct __pyx_obj_8pysndlib_10generators_Izcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_izcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_izcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_izcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("adjustable_square_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_adjustable_square_wave, "double (struct __pyx_obj_8pysndlib_10generators_AdjustableSquareWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_square_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_adjustable_square_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_is_adjustable_square_wave, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("adjustable_triangle_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_adjustable_triangle_wave, "double (struct __pyx_obj_8pysndlib_10generators_AdjustableTriangleWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_triangle_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_adjustable_triangle_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_is_adjustable_triangle_wave, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("adjustable_sawtooth_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_adjustable_sawtooth_wave, "double (struct __pyx_obj_8pysndlib_10generators_AdjustableSawtoothWave *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_sawtooth_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_adjustable_sawtooth_wave", (void (*)(void))__pyx_f_8pysndlib_10generators_is_adjustable_sawtooth_wave, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("adjustable_oscil", (void (*)(void))__pyx_f_8pysndlib_10generators_adjustable_oscil, "double (struct __pyx_obj_8pysndlib_10generators_AdjustableOscil *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_adjustable_oscil *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_adjustable_oscil", (void (*)(void))__pyx_f_8pysndlib_10generators_is_adjustable_oscil, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("make_table_lookup_with_env", (void (*)(void))__pyx_f_8pysndlib_10generators_make_table_lookup_with_env, "PyObject *(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_table_lookup_with_env *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("make_wave_train_with_env", (void (*)(void))__pyx_f_8pysndlib_10generators_make_wave_train_with_env, "PyObject *(PyObject *, PyObject *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_make_wave_train_with_env *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("round_interp", (void (*)(void))__pyx_f_8pysndlib_10generators_round_interp, "double (struct __pyx_obj_8pysndlib_10generators_RoundInterp *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_round_interp *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_round_interp", (void (*)(void))__pyx_f_8pysndlib_10generators_is_round_interp, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("sine_env", (void (*)(void))__pyx_f_8pysndlib_10generators_sine_env, "double (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("square_env", (void (*)(void))__pyx_f_8pysndlib_10generators_square_env, "double (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("blackman4_env", (void (*)(void))__pyx_f_8pysndlib_10generators_blackman4_env, "double (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("nchoosekcos", (void (*)(void))__pyx_f_8pysndlib_10generators_nchoosekcos, "double (struct __pyx_obj_8pysndlib_10generators_Nchoosekcos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_nchoosekcos *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_nchoosekcos", (void (*)(void))__pyx_f_8pysndlib_10generators_is_nchoosekcos, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("sinc_train", (void (*)(void))__pyx_f_8pysndlib_10generators_sinc_train, "double (struct __pyx_obj_8pysndlib_10generators_SincTrain *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_sinc_train *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_sinc_train", (void (*)(void))__pyx_f_8pysndlib_10generators_is_sinc_train, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("pink_noise", (void (*)(void))__pyx_f_8pysndlib_10generators_pink_noise, "double (struct __pyx_obj_8pysndlib_10generators_PinkNoise *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_pink_noise *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_pink_noise", (void (*)(void))__pyx_f_8pysndlib_10generators_is_pink_noise, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("brown_noise", (void (*)(void))__pyx_f_8pysndlib_10generators_brown_noise, "double (struct __pyx_obj_8pysndlib_10generators_BrownNoise *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_brown_noise *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_brown_noise", (void (*)(void))__pyx_f_8pysndlib_10generators_is_brown_noise, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("moving_sum", (void (*)(void))__pyx_f_8pysndlib_10generators_moving_sum, "double (struct __pyx_obj_8pysndlib_10generators_MovingSum *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_sum *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_moving_sum", (void (*)(void))__pyx_f_8pysndlib_10generators_is_moving_sum, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("moving_variance", (void (*)(void))__pyx_f_8pysndlib_10generators_moving_variance, "double (struct __pyx_obj_8pysndlib_10generators_MovingVariance *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_variance *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_moving_variance", (void (*)(void))__pyx_f_8pysndlib_10generators_is_moving_variance, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("moving_rms", (void (*)(void))__pyx_f_8pysndlib_10generators_moving_rms, "double (struct __pyx_obj_8pysndlib_10generators_MovingRMS *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_rms *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_moving_rms", (void (*)(void))__pyx_f_8pysndlib_10generators_is_moving_rms, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("moving_length", (void (*)(void))__pyx_f_8pysndlib_10generators_moving_length, "double (struct __pyx_obj_8pysndlib_10generators_MovingLength *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_moving_length *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_moving_length", (void (*)(void))__pyx_f_8pysndlib_10generators_is_moving_length, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("weighted_moving_average", (void (*)(void))__pyx_f_8pysndlib_10generators_weighted_moving_average, "double (struct __pyx_obj_8pysndlib_10generators_WeightedMovingAverage *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_weighted_moving_average *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_weighted_moving_average", (void (*)(void))__pyx_f_8pysndlib_10generators_is_weighted_moving_average, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("exponentially_weighted_moving_average", (void (*)(void))__pyx_f_8pysndlib_10generators_exponentially_weighted_moving_average, "double (struct __pyx_obj_8pysndlib_10generators_ExponentiallyWeightedMovingAverage *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_exponentially_weighted_moving_average *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_exponentially_weighted_moving_average", (void (*)(void))__pyx_f_8pysndlib_10generators_is_exponentially_weighted_moving_average, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("polyoid", (void (*)(void))__pyx_f_8pysndlib_10generators_polyoid, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_polyoid *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_polyoid", (void (*)(void))__pyx_f_8pysndlib_10generators_is_polyoid, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("tanhsin", (void (*)(void))__pyx_f_8pysndlib_10generators_tanhsin, "double (struct __pyx_obj_8pysndlib_10generators_Tanhsin *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_tanhsin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ExportFunction("is_tanhsin", (void (*)(void))__pyx_f_8pysndlib_10generators_is_tanhsin, "int (PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_init_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
  /*--- Type init code ---*/
  __pyx_vtabptr_8pysndlib_10generators_CLMGenerator = &__pyx_vtable_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_CLMGenerator.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_12CLMGenerator_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_8pysndlib_10generators_CLMGenerator = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_CLMGenerator_spec, NULL); if (unlikely(!__pyx_ptype_8pysndlib_10generators_CLMGenerator)) __PYX_ERR(0, 21, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_CLMGenerator_spec, __pyx_ptype_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_CLMGenerator = &__pyx_type_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_CLMGenerator->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_CLMGenerator, __pyx_vtabptr_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_CLMGenerator, (PyObject *) __pyx_ptype_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_CLMGenerator) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nssb = &__pyx_vtable_8pysndlib_10generators_Nssb;
  __pyx_vtable_8pysndlib_10generators_Nssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Nssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 26, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nssb)) __PYX_ERR(0, 26, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nssb_spec, __pyx_ptype_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nssb = &__pyx_type_8pysndlib_10generators_Nssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nssb, __pyx_vtabptr_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nssb) < 0) __PYX_ERR(0, 26, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nxysin = &__pyx_vtable_8pysndlib_10generators_Nxysin;
  __pyx_vtable_8pysndlib_10generators_Nxysin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nxysin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Nxysin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nxysin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nxysin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nxysin)) __PYX_ERR(0, 133, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nxysin_spec, __pyx_ptype_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nxysin = &__pyx_type_8pysndlib_10generators_Nxysin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nxysin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nxysin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nxysin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nxysin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nxysin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nxysin, __pyx_vtabptr_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nxysin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nxysin) < 0) __PYX_ERR(0, 133, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nxycos = &__pyx_vtable_8pysndlib_10generators_Nxycos;
  __pyx_vtable_8pysndlib_10generators_Nxycos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nxycos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Nxycos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nxycos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nxycos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nxycos)) __PYX_ERR(0, 192, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nxycos_spec, __pyx_ptype_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nxycos = &__pyx_type_8pysndlib_10generators_Nxycos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nxycos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nxycos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nxycos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nxycos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nxycos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nxycos, __pyx_vtabptr_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nxycos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nxycos) < 0) __PYX_ERR(0, 192, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nxy1cos = &__pyx_vtable_8pysndlib_10generators_Nxy1cos;
  __pyx_vtable_8pysndlib_10generators_Nxy1cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nxy1cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Nxy1cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nxy1cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nxy1cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nxy1cos)) __PYX_ERR(0, 241, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nxy1cos_spec, __pyx_ptype_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nxy1cos = &__pyx_type_8pysndlib_10generators_Nxy1cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nxy1cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nxy1cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nxy1cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nxy1cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nxy1cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nxy1cos, __pyx_vtabptr_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nxy1cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nxy1cos) < 0) __PYX_ERR(0, 241, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nxy1sin = &__pyx_vtable_8pysndlib_10generators_Nxy1sin;
  __pyx_vtable_8pysndlib_10generators_Nxy1sin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nxy1sin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Nxy1sin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nxy1sin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nxy1sin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nxy1sin)) __PYX_ERR(0, 295, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nxy1sin_spec, __pyx_ptype_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nxy1sin = &__pyx_type_8pysndlib_10generators_Nxy1sin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nxy1sin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nxy1sin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nxy1sin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nxy1sin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nxy1sin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nxy1sin, __pyx_vtabptr_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nxy1sin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nxy1sin) < 0) __PYX_ERR(0, 295, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Noddcos = &__pyx_vtable_8pysndlib_10generators_Noddcos;
  __pyx_vtable_8pysndlib_10generators_Noddcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Noddcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Noddcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Noddcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Noddcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Noddcos)) __PYX_ERR(0, 422, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Noddcos_spec, __pyx_ptype_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Noddcos = &__pyx_type_8pysndlib_10generators_Noddcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Noddcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Noddcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Noddcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Noddcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Noddcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Noddcos, __pyx_vtabptr_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Noddcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Noddcos) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Noddssb = &__pyx_vtable_8pysndlib_10generators_Noddssb;
  __pyx_vtable_8pysndlib_10generators_Noddssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Noddssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Noddssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Noddssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Noddssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Noddssb)) __PYX_ERR(0, 479, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Noddssb_spec, __pyx_ptype_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Noddssb = &__pyx_type_8pysndlib_10generators_Noddssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Noddssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Noddssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Noddssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Noddssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Noddssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Noddssb, __pyx_vtabptr_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Noddssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Noddssb) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Ncos2 = &__pyx_vtable_8pysndlib_10generators_Ncos2;
  __pyx_vtable_8pysndlib_10generators_Ncos2.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Ncos2.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Ncos2_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Ncos2 = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Ncos2_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Ncos2)) __PYX_ERR(0, 537, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Ncos2_spec, __pyx_ptype_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Ncos2 = &__pyx_type_8pysndlib_10generators_Ncos2;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Ncos2->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Ncos2->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Ncos2->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Ncos2->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Ncos2->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Ncos2, __pyx_vtabptr_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ncos2, (PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos2) < 0) __PYX_ERR(0, 537, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Ncos4 = &__pyx_vtable_8pysndlib_10generators_Ncos4;
  __pyx_vtable_8pysndlib_10generators_Ncos4.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_Ncos2;
  __pyx_vtable_8pysndlib_10generators_Ncos4.__pyx_base.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Ncos4_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Ncos4 = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Ncos4_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Ncos4)) __PYX_ERR(0, 589, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Ncos4_spec, __pyx_ptype_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Ncos4 = &__pyx_type_8pysndlib_10generators_Ncos4;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Ncos4->tp_base = __pyx_ptype_8pysndlib_10generators_Ncos2;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Ncos4->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Ncos4->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Ncos4->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Ncos4->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Ncos4, __pyx_vtabptr_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ncos4, (PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos4) < 0) __PYX_ERR(0, 589, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Npcos = &__pyx_vtable_8pysndlib_10generators_Npcos;
  __pyx_vtable_8pysndlib_10generators_Npcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Npcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Npcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Npcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Npcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Npcos)) __PYX_ERR(0, 625, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Npcos_spec, __pyx_ptype_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Npcos = &__pyx_type_8pysndlib_10generators_Npcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Npcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Npcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Npcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Npcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Npcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Npcos, __pyx_vtabptr_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Npcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Npcos) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Ncos5 = &__pyx_vtable_8pysndlib_10generators_Ncos5;
  __pyx_vtable_8pysndlib_10generators_Ncos5.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Ncos5.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Ncos5_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Ncos5 = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Ncos5_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Ncos5)) __PYX_ERR(0, 687, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Ncos5_spec, __pyx_ptype_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Ncos5 = &__pyx_type_8pysndlib_10generators_Ncos5;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Ncos5->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Ncos5->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Ncos5->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Ncos5->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Ncos5->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Ncos5, __pyx_vtabptr_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ncos5, (PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Ncos5) < 0) __PYX_ERR(0, 687, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nsin5 = &__pyx_vtable_8pysndlib_10generators_Nsin5;
  __pyx_vtable_8pysndlib_10generators_Nsin5.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nsin5.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nsin5_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 763, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nsin5 = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nsin5_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nsin5)) __PYX_ERR(0, 763, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nsin5_spec, __pyx_ptype_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nsin5 = &__pyx_type_8pysndlib_10generators_Nsin5;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nsin5->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nsin5->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nsin5->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nsin5->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nsin5->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nsin5, __pyx_vtabptr_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nsin5, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nsin5) < 0) __PYX_ERR(0, 763, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nrcos = &__pyx_vtable_8pysndlib_10generators_Nrcos;
  __pyx_vtable_8pysndlib_10generators_Nrcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nrcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nrcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nrcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nrcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nrcos)) __PYX_ERR(0, 830, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nrcos_spec, __pyx_ptype_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nrcos = &__pyx_type_8pysndlib_10generators_Nrcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nrcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nrcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nrcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nrcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nrcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nrcos, __pyx_vtabptr_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nrcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nrcos) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nrssb = &__pyx_vtable_8pysndlib_10generators_Nrssb;
  __pyx_vtable_8pysndlib_10generators_Nrssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nrssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nrssb_next;
  __pyx_vtable_8pysndlib_10generators_Nrssb.call_interp = (PyObject *(*)(struct __pyx_obj_8pysndlib_10generators_Nrssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nrssb_call_interp *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nrssb_call_interp;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nrssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nrssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nrssb)) __PYX_ERR(0, 922, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nrssb_spec, __pyx_ptype_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nrssb = &__pyx_type_8pysndlib_10generators_Nrssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nrssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nrssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nrssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nrssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nrssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nrssb, __pyx_vtabptr_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nrssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nrssb) < 0) __PYX_ERR(0, 922, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nkssb = &__pyx_vtable_8pysndlib_10generators_Nkssb;
  __pyx_vtable_8pysndlib_10generators_Nkssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nkssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nkssb_next;
  __pyx_vtable_8pysndlib_10generators_Nkssb.call_interp = (double (*)(struct __pyx_obj_8pysndlib_10generators_Nkssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Nkssb_call_interp *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Nkssb_call_interp;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nkssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nkssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nkssb)) __PYX_ERR(0, 1002, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nkssb_spec, __pyx_ptype_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nkssb = &__pyx_type_8pysndlib_10generators_Nkssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nkssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nkssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nkssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nkssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nkssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nkssb, __pyx_vtabptr_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nkssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nkssb) < 0) __PYX_ERR(0, 1002, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nsincos = &__pyx_vtable_8pysndlib_10generators_Nsincos;
  __pyx_vtable_8pysndlib_10generators_Nsincos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nsincos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Nsincos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nsincos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nsincos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nsincos)) __PYX_ERR(0, 1100, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nsincos_spec, __pyx_ptype_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nsincos = &__pyx_type_8pysndlib_10generators_Nsincos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nsincos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nsincos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nsincos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nsincos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nsincos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nsincos, __pyx_vtabptr_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nsincos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nsincos) < 0) __PYX_ERR(0, 1100, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_N1cos = &__pyx_vtable_8pysndlib_10generators_N1cos;
  __pyx_vtable_8pysndlib_10generators_N1cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_N1cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5N1cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_N1cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_N1cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_N1cos)) __PYX_ERR(0, 1148, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_N1cos_spec, __pyx_ptype_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_N1cos = &__pyx_type_8pysndlib_10generators_N1cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_N1cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_N1cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_N1cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_N1cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_N1cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_N1cos, __pyx_vtabptr_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_N1cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_N1cos) < 0) __PYX_ERR(0, 1148, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Npos1cos = &__pyx_vtable_8pysndlib_10generators_Npos1cos;
  __pyx_vtable_8pysndlib_10generators_Npos1cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Npos1cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_8Npos1cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1193, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Npos1cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Npos1cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Npos1cos)) __PYX_ERR(0, 1193, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Npos1cos_spec, __pyx_ptype_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Npos1cos = &__pyx_type_8pysndlib_10generators_Npos1cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Npos1cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Npos1cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Npos1cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Npos1cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Npos1cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Npos1cos, __pyx_vtabptr_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Npos1cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Npos1cos) < 0) __PYX_ERR(0, 1193, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Npos3cos = &__pyx_vtable_8pysndlib_10generators_Npos3cos;
  __pyx_vtable_8pysndlib_10generators_Npos3cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Npos3cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_8Npos3cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Npos3cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Npos3cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Npos3cos)) __PYX_ERR(0, 1245, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Npos3cos_spec, __pyx_ptype_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Npos3cos = &__pyx_type_8pysndlib_10generators_Npos3cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Npos3cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Npos3cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Npos3cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Npos3cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Npos3cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Npos3cos, __pyx_vtabptr_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Npos3cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Npos3cos) < 0) __PYX_ERR(0, 1245, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rcos = &__pyx_vtable_8pysndlib_10generators_Rcos;
  __pyx_vtable_8pysndlib_10generators_Rcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Rcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rcos)) __PYX_ERR(0, 1293, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rcos_spec, __pyx_ptype_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rcos = &__pyx_type_8pysndlib_10generators_Rcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rcos, __pyx_vtabptr_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rcos) < 0) __PYX_ERR(0, 1293, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rssb = &__pyx_vtable_8pysndlib_10generators_Rssb;
  __pyx_vtable_8pysndlib_10generators_Rssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Rssb_next;
  __pyx_vtable_8pysndlib_10generators_Rssb.call_interp = (double (*)(struct __pyx_obj_8pysndlib_10generators_Rssb *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_4Rssb_call_interp *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Rssb_call_interp;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rssb)) __PYX_ERR(0, 1365, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rssb_spec, __pyx_ptype_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rssb = &__pyx_type_8pysndlib_10generators_Rssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rssb, __pyx_vtabptr_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rssb) < 0) __PYX_ERR(0, 1365, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rxysin = &__pyx_vtable_8pysndlib_10generators_Rxysin;
  __pyx_vtable_8pysndlib_10generators_Rxysin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rxysin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Rxysin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rxysin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rxysin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rxysin)) __PYX_ERR(0, 1444, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rxysin_spec, __pyx_ptype_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rxysin = &__pyx_type_8pysndlib_10generators_Rxysin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rxysin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rxysin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rxysin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rxysin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rxysin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rxysin, __pyx_vtabptr_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rxysin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rxysin) < 0) __PYX_ERR(0, 1444, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rxycos = &__pyx_vtable_8pysndlib_10generators_Rxycos;
  __pyx_vtable_8pysndlib_10generators_Rxycos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rxycos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Rxycos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rxycos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rxycos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rxycos)) __PYX_ERR(0, 1504, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rxycos_spec, __pyx_ptype_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rxycos = &__pyx_type_8pysndlib_10generators_Rxycos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rxycos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rxycos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rxycos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rxycos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rxycos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rxycos, __pyx_vtabptr_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rxycos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rxycos) < 0) __PYX_ERR(0, 1504, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_SafeRxycos = &__pyx_vtable_8pysndlib_10generators_SafeRxycos;
  __pyx_vtable_8pysndlib_10generators_SafeRxycos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_SafeRxycos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_10SafeRxycos_next;
  __pyx_vtable_8pysndlib_10generators_SafeRxycos.clamp_rxycos_r = (PyObject *(*)(struct __pyx_obj_8pysndlib_10generators_SafeRxycos *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r *__pyx_optional_args))__pyx_f_8pysndlib_10generators_10SafeRxycos_clamp_rxycos_r;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_SafeRxycos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_SafeRxycos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_SafeRxycos)) __PYX_ERR(0, 1564, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_SafeRxycos_spec, __pyx_ptype_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_SafeRxycos = &__pyx_type_8pysndlib_10generators_SafeRxycos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_SafeRxycos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_SafeRxycos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_SafeRxycos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_SafeRxycos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_SafeRxycos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_SafeRxycos, __pyx_vtabptr_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SafeRxycos, (PyObject *) __pyx_ptype_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_SafeRxycos) < 0) __PYX_ERR(0, 1564, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Ercos = &__pyx_vtable_8pysndlib_10generators_Ercos;
  __pyx_vtable_8pysndlib_10generators_Ercos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Ercos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Ercos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Ercos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Ercos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Ercos)) __PYX_ERR(0, 1654, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Ercos_spec, __pyx_ptype_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Ercos = &__pyx_type_8pysndlib_10generators_Ercos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Ercos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Ercos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Ercos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Ercos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Ercos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Ercos, __pyx_vtabptr_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ercos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Ercos) < 0) __PYX_ERR(0, 1654, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Erssb = &__pyx_vtable_8pysndlib_10generators_Erssb;
  __pyx_vtable_8pysndlib_10generators_Erssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Erssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Erssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Erssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Erssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Erssb)) __PYX_ERR(0, 1717, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Erssb_spec, __pyx_ptype_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Erssb = &__pyx_type_8pysndlib_10generators_Erssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Erssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Erssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Erssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Erssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Erssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Erssb, __pyx_vtabptr_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Erssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Erssb) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_R2cos = &__pyx_vtable_8pysndlib_10generators_R2cos;
  __pyx_vtable_8pysndlib_10generators_R2cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_R2cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5R2cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_R2cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_R2cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_R2cos)) __PYX_ERR(0, 1778, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_R2cos_spec, __pyx_ptype_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_R2cos = &__pyx_type_8pysndlib_10generators_R2cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_R2cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_R2cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_R2cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_R2cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_R2cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_R2cos, __pyx_vtabptr_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_R2cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_R2cos) < 0) __PYX_ERR(0, 1778, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_R2ssb = &__pyx_vtable_8pysndlib_10generators_R2ssb;
  __pyx_vtable_8pysndlib_10generators_R2ssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_R2ssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5R2ssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_R2ssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_R2ssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_R2ssb)) __PYX_ERR(0, 1825, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_R2ssb_spec, __pyx_ptype_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_R2ssb = &__pyx_type_8pysndlib_10generators_R2ssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_R2ssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_R2ssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_R2ssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_R2ssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_R2ssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_R2ssb, __pyx_vtabptr_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_R2ssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_R2ssb) < 0) __PYX_ERR(0, 1825, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Eoddcos = &__pyx_vtable_8pysndlib_10generators_Eoddcos;
  __pyx_vtable_8pysndlib_10generators_Eoddcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Eoddcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Eoddcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Eoddcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Eoddcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Eoddcos)) __PYX_ERR(0, 1874, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Eoddcos_spec, __pyx_ptype_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Eoddcos = &__pyx_type_8pysndlib_10generators_Eoddcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Eoddcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Eoddcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Eoddcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Eoddcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Eoddcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Eoddcos, __pyx_vtabptr_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Eoddcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Eoddcos) < 0) __PYX_ERR(0, 1874, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rkcos = &__pyx_vtable_8pysndlib_10generators_Rkcos;
  __pyx_vtable_8pysndlib_10generators_Rkcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rkcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Rkcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rkcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rkcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rkcos)) __PYX_ERR(0, 1940, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rkcos_spec, __pyx_ptype_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rkcos = &__pyx_type_8pysndlib_10generators_Rkcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rkcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rkcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rkcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rkcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rkcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rkcos, __pyx_vtabptr_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rkcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rkcos) < 0) __PYX_ERR(0, 1940, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rksin = &__pyx_vtable_8pysndlib_10generators_Rksin;
  __pyx_vtable_8pysndlib_10generators_Rksin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rksin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Rksin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2008, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rksin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rksin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rksin)) __PYX_ERR(0, 2008, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rksin_spec, __pyx_ptype_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rksin = &__pyx_type_8pysndlib_10generators_Rksin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rksin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rksin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rksin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rksin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rksin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rksin, __pyx_vtabptr_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rksin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rksin) < 0) __PYX_ERR(0, 2008, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rkssb = &__pyx_vtable_8pysndlib_10generators_Rkssb;
  __pyx_vtable_8pysndlib_10generators_Rkssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rkssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Rkssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2062, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rkssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rkssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rkssb)) __PYX_ERR(0, 2062, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rkssb_spec, __pyx_ptype_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rkssb = &__pyx_type_8pysndlib_10generators_Rkssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rkssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rkssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rkssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rkssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rkssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rkssb, __pyx_vtabptr_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rkssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rkssb) < 0) __PYX_ERR(0, 2062, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rkfcos = &__pyx_vtable_8pysndlib_10generators_Rkfcos;
  __pyx_vtable_8pysndlib_10generators_Rkfcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rkfcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Rkfcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rkfcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rkfcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rkfcos)) __PYX_ERR(0, 2122, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rkfcos_spec, __pyx_ptype_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rkfcos = &__pyx_type_8pysndlib_10generators_Rkfcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rkfcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rkfcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rkfcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rkfcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rkfcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rkfcos, __pyx_vtabptr_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rkfcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rkfcos) < 0) __PYX_ERR(0, 2122, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rkfssb = &__pyx_vtable_8pysndlib_10generators_Rkfssb;
  __pyx_vtable_8pysndlib_10generators_Rkfssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rkfssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Rkfssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rkfssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rkfssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rkfssb)) __PYX_ERR(0, 2188, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rkfssb_spec, __pyx_ptype_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rkfssb = &__pyx_type_8pysndlib_10generators_Rkfssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rkfssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rkfssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rkfssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rkfssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rkfssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rkfssb, __pyx_vtabptr_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rkfssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rkfssb) < 0) __PYX_ERR(0, 2188, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_R2kfcos = &__pyx_vtable_8pysndlib_10generators_R2kfcos;
  __pyx_vtable_8pysndlib_10generators_R2kfcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_R2kfcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7R2kfcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2250, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_R2kfcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_R2kfcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_R2kfcos)) __PYX_ERR(0, 2250, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_R2kfcos_spec, __pyx_ptype_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_R2kfcos = &__pyx_type_8pysndlib_10generators_R2kfcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_R2kfcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_R2kfcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_R2kfcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_R2kfcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_R2kfcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_R2kfcos, __pyx_vtabptr_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_R2kfcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_R2kfcos) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_K2sin = &__pyx_vtable_8pysndlib_10generators_K2sin;
  __pyx_vtable_8pysndlib_10generators_K2sin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_K2sin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5K2sin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2320, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_K2sin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_K2sin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_K2sin)) __PYX_ERR(0, 2320, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_K2sin_spec, __pyx_ptype_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_K2sin = &__pyx_type_8pysndlib_10generators_K2sin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_K2sin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_K2sin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_K2sin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_K2sin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_K2sin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_K2sin, __pyx_vtabptr_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_K2sin, (PyObject *) __pyx_ptype_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_K2sin) < 0) __PYX_ERR(0, 2320, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_K2cos = &__pyx_vtable_8pysndlib_10generators_K2cos;
  __pyx_vtable_8pysndlib_10generators_K2cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_K2cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5K2cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_K2cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_K2cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_K2cos)) __PYX_ERR(0, 2365, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_K2cos_spec, __pyx_ptype_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_K2cos = &__pyx_type_8pysndlib_10generators_K2cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_K2cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_K2cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_K2cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_K2cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_K2cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_K2cos, __pyx_vtabptr_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_K2cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_K2cos) < 0) __PYX_ERR(0, 2365, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_K2ssb = &__pyx_vtable_8pysndlib_10generators_K2ssb;
  __pyx_vtable_8pysndlib_10generators_K2ssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_K2ssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5K2ssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_K2ssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_K2ssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_K2ssb)) __PYX_ERR(0, 2406, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_K2ssb_spec, __pyx_ptype_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_K2ssb = &__pyx_type_8pysndlib_10generators_K2ssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_K2ssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_K2ssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_K2ssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_K2ssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_K2ssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_K2ssb, __pyx_vtabptr_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_K2ssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_K2ssb) < 0) __PYX_ERR(0, 2406, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Dblsum = &__pyx_vtable_8pysndlib_10generators_Dblsum;
  __pyx_vtable_8pysndlib_10generators_Dblsum.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Dblsum.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Dblsum_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Dblsum = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Dblsum_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Dblsum)) __PYX_ERR(0, 2453, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Dblsum_spec, __pyx_ptype_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Dblsum = &__pyx_type_8pysndlib_10generators_Dblsum;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Dblsum->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Dblsum->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Dblsum->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Dblsum->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Dblsum->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Dblsum, __pyx_vtabptr_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Dblsum, (PyObject *) __pyx_ptype_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Dblsum) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Rkoddssb = &__pyx_vtable_8pysndlib_10generators_Rkoddssb;
  __pyx_vtable_8pysndlib_10generators_Rkoddssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Rkoddssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_8Rkoddssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2506, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Rkoddssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Rkoddssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Rkoddssb)) __PYX_ERR(0, 2506, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Rkoddssb_spec, __pyx_ptype_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Rkoddssb = &__pyx_type_8pysndlib_10generators_Rkoddssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Rkoddssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Rkoddssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Rkoddssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Rkoddssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Rkoddssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Rkoddssb, __pyx_vtabptr_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rkoddssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Rkoddssb) < 0) __PYX_ERR(0, 2506, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Krksin = &__pyx_vtable_8pysndlib_10generators_Krksin;
  __pyx_vtable_8pysndlib_10generators_Krksin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Krksin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_6Krksin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Krksin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Krksin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Krksin)) __PYX_ERR(0, 2566, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Krksin_spec, __pyx_ptype_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Krksin = &__pyx_type_8pysndlib_10generators_Krksin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Krksin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Krksin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Krksin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Krksin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Krksin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Krksin, __pyx_vtabptr_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Krksin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Krksin) < 0) __PYX_ERR(0, 2566, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Absin = &__pyx_vtable_8pysndlib_10generators_Absin;
  __pyx_vtable_8pysndlib_10generators_Absin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Absin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Absin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Absin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Absin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Absin)) __PYX_ERR(0, 2613, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Absin_spec, __pyx_ptype_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Absin = &__pyx_type_8pysndlib_10generators_Absin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Absin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Absin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Absin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Absin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Absin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Absin, __pyx_vtabptr_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Absin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Absin) < 0) __PYX_ERR(0, 2613, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Abcos = &__pyx_vtable_8pysndlib_10generators_Abcos;
  __pyx_vtable_8pysndlib_10generators_Abcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Abcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Abcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2669, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Abcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Abcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Abcos)) __PYX_ERR(0, 2669, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Abcos_spec, __pyx_ptype_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Abcos = &__pyx_type_8pysndlib_10generators_Abcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Abcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Abcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Abcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Abcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Abcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Abcos, __pyx_vtabptr_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Abcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Abcos) < 0) __PYX_ERR(0, 2669, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_R2k2cos = &__pyx_vtable_8pysndlib_10generators_R2k2cos;
  __pyx_vtable_8pysndlib_10generators_R2k2cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_R2k2cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7R2k2cos_next;
  __pyx_vtable_8pysndlib_10generators_R2k2cos.r2k2cos_norm = (double (*)(struct __pyx_obj_8pysndlib_10generators_R2k2cos *, double))__pyx_f_8pysndlib_10generators_7R2k2cos_r2k2cos_norm;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2714, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_R2k2cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_R2k2cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_R2k2cos)) __PYX_ERR(0, 2714, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_R2k2cos_spec, __pyx_ptype_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_R2k2cos = &__pyx_type_8pysndlib_10generators_R2k2cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_R2k2cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_R2k2cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_R2k2cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_R2k2cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_R2k2cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_R2k2cos, __pyx_vtabptr_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_R2k2cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_R2k2cos) < 0) __PYX_ERR(0, 2714, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Blsaw = &__pyx_vtable_8pysndlib_10generators_Blsaw;
  __pyx_vtable_8pysndlib_10generators_Blsaw.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Blsaw.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Blsaw_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2765, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Blsaw = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Blsaw_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Blsaw)) __PYX_ERR(0, 2765, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Blsaw_spec, __pyx_ptype_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Blsaw = &__pyx_type_8pysndlib_10generators_Blsaw;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Blsaw->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Blsaw->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Blsaw->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Blsaw->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Blsaw->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Blsaw, __pyx_vtabptr_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Blsaw, (PyObject *) __pyx_ptype_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Blsaw) < 0) __PYX_ERR(0, 2765, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Asyfm = &__pyx_vtable_8pysndlib_10generators_Asyfm;
  __pyx_vtable_8pysndlib_10generators_Asyfm.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Asyfm.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Asyfm_next;
  __pyx_vtable_8pysndlib_10generators_Asyfm.next_i = (double (*)(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_i *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Asyfm_next_i;
  __pyx_vtable_8pysndlib_10generators_Asyfm.next_j = (double (*)(struct __pyx_obj_8pysndlib_10generators_Asyfm *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_5Asyfm_next_j *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Asyfm_next_j;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Asyfm = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Asyfm_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Asyfm)) __PYX_ERR(0, 2820, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Asyfm_spec, __pyx_ptype_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Asyfm = &__pyx_type_8pysndlib_10generators_Asyfm;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Asyfm->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Asyfm->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Asyfm->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Asyfm->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Asyfm->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_vtabptr_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Asyfm, (PyObject *) __pyx_ptype_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Asyfm) < 0) __PYX_ERR(0, 2820, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Bess = &__pyx_vtable_8pysndlib_10generators_Bess;
  __pyx_vtable_8pysndlib_10generators_Bess.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Bess.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Bess_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2899, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Bess = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Bess_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Bess)) __PYX_ERR(0, 2899, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Bess_spec, __pyx_ptype_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Bess = &__pyx_type_8pysndlib_10generators_Bess;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Bess->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Bess->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Bess->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Bess->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Bess->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Bess, __pyx_vtabptr_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Bess, (PyObject *) __pyx_ptype_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Bess) < 0) __PYX_ERR(0, 2899, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Jjcos = &__pyx_vtable_8pysndlib_10generators_Jjcos;
  __pyx_vtable_8pysndlib_10generators_Jjcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Jjcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Jjcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2946, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Jjcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Jjcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Jjcos)) __PYX_ERR(0, 2946, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Jjcos_spec, __pyx_ptype_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Jjcos = &__pyx_type_8pysndlib_10generators_Jjcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Jjcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Jjcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Jjcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Jjcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Jjcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Jjcos, __pyx_vtabptr_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Jjcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Jjcos) < 0) __PYX_ERR(0, 2946, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_J0evencos = &__pyx_vtable_8pysndlib_10generators_J0evencos;
  __pyx_vtable_8pysndlib_10generators_J0evencos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_J0evencos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9J0evencos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_J0evencos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_J0evencos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_J0evencos)) __PYX_ERR(0, 2994, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_J0evencos_spec, __pyx_ptype_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_J0evencos = &__pyx_type_8pysndlib_10generators_J0evencos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_J0evencos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_J0evencos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_J0evencos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_J0evencos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_J0evencos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_J0evencos, __pyx_vtabptr_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_J0evencos, (PyObject *) __pyx_ptype_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_J0evencos) < 0) __PYX_ERR(0, 2994, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_J2cos = &__pyx_vtable_8pysndlib_10generators_J2cos;
  __pyx_vtable_8pysndlib_10generators_J2cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_J2cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5J2cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3043, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_J2cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_J2cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_J2cos)) __PYX_ERR(0, 3043, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_J2cos_spec, __pyx_ptype_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_J2cos = &__pyx_type_8pysndlib_10generators_J2cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_J2cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_J2cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_J2cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_J2cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_J2cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_J2cos, __pyx_vtabptr_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_J2cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_J2cos) < 0) __PYX_ERR(0, 3043, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Jpcos = &__pyx_vtable_8pysndlib_10generators_Jpcos;
  __pyx_vtable_8pysndlib_10generators_Jpcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Jpcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Jpcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Jpcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Jpcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Jpcos)) __PYX_ERR(0, 3090, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Jpcos_spec, __pyx_ptype_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Jpcos = &__pyx_type_8pysndlib_10generators_Jpcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Jpcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Jpcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Jpcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Jpcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Jpcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Jpcos, __pyx_vtabptr_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Jpcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Jpcos) < 0) __PYX_ERR(0, 3090, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Jncos = &__pyx_vtable_8pysndlib_10generators_Jncos;
  __pyx_vtable_8pysndlib_10generators_Jncos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Jncos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Jncos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3139, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Jncos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Jncos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Jncos)) __PYX_ERR(0, 3139, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Jncos_spec, __pyx_ptype_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Jncos = &__pyx_type_8pysndlib_10generators_Jncos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Jncos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Jncos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Jncos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Jncos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Jncos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Jncos, __pyx_vtabptr_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Jncos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Jncos) < 0) __PYX_ERR(0, 3139, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_J0j1cos = &__pyx_vtable_8pysndlib_10generators_J0j1cos;
  __pyx_vtable_8pysndlib_10generators_J0j1cos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_J0j1cos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7J0j1cos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3187, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_J0j1cos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_J0j1cos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_J0j1cos)) __PYX_ERR(0, 3187, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_J0j1cos_spec, __pyx_ptype_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_J0j1cos = &__pyx_type_8pysndlib_10generators_J0j1cos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_J0j1cos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_J0j1cos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_J0j1cos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_J0j1cos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_J0j1cos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_J0j1cos, __pyx_vtabptr_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_J0j1cos, (PyObject *) __pyx_ptype_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_J0j1cos) < 0) __PYX_ERR(0, 3187, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Jycos = &__pyx_vtable_8pysndlib_10generators_Jycos;
  __pyx_vtable_8pysndlib_10generators_Jycos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Jycos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Jycos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Jycos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Jycos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Jycos)) __PYX_ERR(0, 3233, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Jycos_spec, __pyx_ptype_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Jycos = &__pyx_type_8pysndlib_10generators_Jycos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Jycos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Jycos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Jycos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Jycos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Jycos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Jycos, __pyx_vtabptr_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Jycos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Jycos) < 0) __PYX_ERR(0, 3233, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Jcos = &__pyx_vtable_8pysndlib_10generators_Jcos;
  __pyx_vtable_8pysndlib_10generators_Jcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Jcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_4Jcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3286, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Jcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Jcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Jcos)) __PYX_ERR(0, 3286, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Jcos_spec, __pyx_ptype_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Jcos = &__pyx_type_8pysndlib_10generators_Jcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Jcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Jcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Jcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Jcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Jcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Jcos, __pyx_vtabptr_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Jcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Jcos) < 0) __PYX_ERR(0, 3286, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Blackman = &__pyx_vtable_8pysndlib_10generators_Blackman;
  __pyx_vtable_8pysndlib_10generators_Blackman.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Blackman.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_8Blackman_next;
  __pyx_vtable_8pysndlib_10generators_Blackman.mus_reset = (PyObject *(*)(struct __pyx_obj_8pysndlib_10generators_Blackman *, int __pyx_skip_dispatch))__pyx_f_8pysndlib_10generators_8Blackman_mus_reset;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3333, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Blackman = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Blackman_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Blackman)) __PYX_ERR(0, 3333, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Blackman_spec, __pyx_ptype_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Blackman = &__pyx_type_8pysndlib_10generators_Blackman;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Blackman->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Blackman->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Blackman->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Blackman->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Blackman->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_vtabptr_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Blackman, (PyObject *) __pyx_ptype_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Blackman) < 0) __PYX_ERR(0, 3333, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Fmssb = &__pyx_vtable_8pysndlib_10generators_Fmssb;
  __pyx_vtable_8pysndlib_10generators_Fmssb.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Fmssb.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Fmssb_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Fmssb = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Fmssb_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Fmssb)) __PYX_ERR(0, 3383, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Fmssb_spec, __pyx_ptype_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Fmssb = &__pyx_type_8pysndlib_10generators_Fmssb;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Fmssb->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Fmssb->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Fmssb->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Fmssb->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Fmssb->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Fmssb, __pyx_vtabptr_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Fmssb, (PyObject *) __pyx_ptype_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Fmssb) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_K3sin = &__pyx_vtable_8pysndlib_10generators_K3sin;
  __pyx_vtable_8pysndlib_10generators_K3sin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_K3sin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5K3sin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_K3sin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_K3sin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_K3sin)) __PYX_ERR(0, 3436, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_K3sin_spec, __pyx_ptype_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_K3sin = &__pyx_type_8pysndlib_10generators_K3sin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_K3sin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_K3sin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_K3sin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_K3sin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_K3sin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_K3sin, __pyx_vtabptr_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_K3sin, (PyObject *) __pyx_ptype_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_K3sin) < 0) __PYX_ERR(0, 3436, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Izcos = &__pyx_vtable_8pysndlib_10generators_Izcos;
  __pyx_vtable_8pysndlib_10generators_Izcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Izcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_5Izcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Izcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Izcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Izcos)) __PYX_ERR(0, 3485, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Izcos_spec, __pyx_ptype_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Izcos = &__pyx_type_8pysndlib_10generators_Izcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Izcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Izcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Izcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Izcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Izcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Izcos, __pyx_vtabptr_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Izcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Izcos) < 0) __PYX_ERR(0, 3485, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_AdjustableSquareWave = &__pyx_vtable_8pysndlib_10generators_AdjustableSquareWave;
  __pyx_vtable_8pysndlib_10generators_AdjustableSquareWave.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_AdjustableSquareWave.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_20AdjustableSquareWave_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_AdjustableSquareWave_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave)) __PYX_ERR(0, 3548, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_AdjustableSquareWave_spec, __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave = &__pyx_type_8pysndlib_10generators_AdjustableSquareWave;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave, __pyx_vtabptr_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AdjustableSquareWave, (PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableSquareWave) < 0) __PYX_ERR(0, 3548, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_AdjustableTriangleWave = &__pyx_vtable_8pysndlib_10generators_AdjustableTriangleWave;
  __pyx_vtable_8pysndlib_10generators_AdjustableTriangleWave.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_AdjustableTriangleWave.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_22AdjustableTriangleWave_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_AdjustableTriangleWave_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave)) __PYX_ERR(0, 3623, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_AdjustableTriangleWave_spec, __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave = &__pyx_type_8pysndlib_10generators_AdjustableTriangleWave;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave, __pyx_vtabptr_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AdjustableTriangleWave, (PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave) < 0) __PYX_ERR(0, 3623, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_AdjustableSawtoothWave = &__pyx_vtable_8pysndlib_10generators_AdjustableSawtoothWave;
  __pyx_vtable_8pysndlib_10generators_AdjustableSawtoothWave.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_AdjustableSawtoothWave.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_22AdjustableSawtoothWave_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave)) __PYX_ERR(0, 3697, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave_spec, __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave = &__pyx_type_8pysndlib_10generators_AdjustableSawtoothWave;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave, __pyx_vtabptr_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AdjustableSawtoothWave, (PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave) < 0) __PYX_ERR(0, 3697, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_AdjustableOscil = &__pyx_vtable_8pysndlib_10generators_AdjustableOscil;
  __pyx_vtable_8pysndlib_10generators_AdjustableOscil.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_AdjustableOscil.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_15AdjustableOscil_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3775, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_AdjustableOscil = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_AdjustableOscil_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_AdjustableOscil)) __PYX_ERR(0, 3775, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_AdjustableOscil_spec, __pyx_ptype_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_AdjustableOscil = &__pyx_type_8pysndlib_10generators_AdjustableOscil;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_AdjustableOscil->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_AdjustableOscil->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_AdjustableOscil->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_AdjustableOscil->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_AdjustableOscil->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_AdjustableOscil, __pyx_vtabptr_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AdjustableOscil, (PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_AdjustableOscil) < 0) __PYX_ERR(0, 3775, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_RoundInterp = &__pyx_vtable_8pysndlib_10generators_RoundInterp;
  __pyx_vtable_8pysndlib_10generators_RoundInterp.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_RoundInterp.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_11RoundInterp_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_RoundInterp = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_RoundInterp_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_RoundInterp)) __PYX_ERR(0, 3876, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_RoundInterp_spec, __pyx_ptype_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_RoundInterp = &__pyx_type_8pysndlib_10generators_RoundInterp;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_RoundInterp->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_RoundInterp->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_RoundInterp->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_RoundInterp->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_RoundInterp->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_RoundInterp, __pyx_vtabptr_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RoundInterp, (PyObject *) __pyx_ptype_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_RoundInterp) < 0) __PYX_ERR(0, 3876, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Nchoosekcos = &__pyx_vtable_8pysndlib_10generators_Nchoosekcos;
  __pyx_vtable_8pysndlib_10generators_Nchoosekcos.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Nchoosekcos.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_11Nchoosekcos_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Nchoosekcos = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Nchoosekcos_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Nchoosekcos)) __PYX_ERR(0, 3970, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Nchoosekcos_spec, __pyx_ptype_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Nchoosekcos = &__pyx_type_8pysndlib_10generators_Nchoosekcos;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Nchoosekcos->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Nchoosekcos->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Nchoosekcos->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Nchoosekcos->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Nchoosekcos->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Nchoosekcos, __pyx_vtabptr_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Nchoosekcos, (PyObject *) __pyx_ptype_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Nchoosekcos) < 0) __PYX_ERR(0, 3970, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_SincTrain = &__pyx_vtable_8pysndlib_10generators_SincTrain;
  __pyx_vtable_8pysndlib_10generators_SincTrain.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_SincTrain.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9SincTrain_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_SincTrain = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_SincTrain_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_SincTrain)) __PYX_ERR(0, 4013, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_SincTrain_spec, __pyx_ptype_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_SincTrain = &__pyx_type_8pysndlib_10generators_SincTrain;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_SincTrain->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_SincTrain->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_SincTrain->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_SincTrain->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_SincTrain->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_SincTrain, __pyx_vtabptr_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SincTrain, (PyObject *) __pyx_ptype_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_SincTrain) < 0) __PYX_ERR(0, 4013, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_PinkNoise = &__pyx_vtable_8pysndlib_10generators_PinkNoise;
  __pyx_vtable_8pysndlib_10generators_PinkNoise.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_PinkNoise.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9PinkNoise_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4095, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_PinkNoise = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_PinkNoise_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_PinkNoise)) __PYX_ERR(0, 4095, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_PinkNoise_spec, __pyx_ptype_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_PinkNoise = &__pyx_type_8pysndlib_10generators_PinkNoise;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_PinkNoise->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_PinkNoise->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_PinkNoise->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_PinkNoise->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_PinkNoise->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_PinkNoise, __pyx_vtabptr_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PinkNoise, (PyObject *) __pyx_ptype_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_PinkNoise) < 0) __PYX_ERR(0, 4095, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_BrownNoise = &__pyx_vtable_8pysndlib_10generators_BrownNoise;
  __pyx_vtable_8pysndlib_10generators_BrownNoise.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_BrownNoise.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_10BrownNoise_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_BrownNoise = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_BrownNoise_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_BrownNoise)) __PYX_ERR(0, 4151, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_BrownNoise_spec, __pyx_ptype_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_BrownNoise = &__pyx_type_8pysndlib_10generators_BrownNoise;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_BrownNoise->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_BrownNoise->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_BrownNoise->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_BrownNoise->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_BrownNoise->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_BrownNoise, __pyx_vtabptr_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_BrownNoise, (PyObject *) __pyx_ptype_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_BrownNoise) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_GreenNoise = &__pyx_vtable_8pysndlib_10generators_GreenNoise;
  __pyx_vtable_8pysndlib_10generators_GreenNoise.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_GreenNoise.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_10GreenNoise_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_GreenNoise = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_GreenNoise_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_GreenNoise)) __PYX_ERR(0, 4194, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_GreenNoise_spec, __pyx_ptype_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_GreenNoise = &__pyx_type_8pysndlib_10generators_GreenNoise;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_GreenNoise->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_GreenNoise->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_GreenNoise->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_GreenNoise->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_GreenNoise->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_GreenNoise, __pyx_vtabptr_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GreenNoise, (PyObject *) __pyx_ptype_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_GreenNoise) < 0) __PYX_ERR(0, 4194, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_GreenNoiseInterp = &__pyx_vtable_8pysndlib_10generators_GreenNoiseInterp;
  __pyx_vtable_8pysndlib_10generators_GreenNoiseInterp.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_GreenNoiseInterp.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_16GreenNoiseInterp_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_GreenNoiseInterp_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp)) __PYX_ERR(0, 4242, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_GreenNoiseInterp_spec, __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp = &__pyx_type_8pysndlib_10generators_GreenNoiseInterp;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp, __pyx_vtabptr_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_GreenNoiseInterp, (PyObject *) __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_GreenNoiseInterp) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_MovingSum = &__pyx_vtable_8pysndlib_10generators_MovingSum;
  __pyx_vtable_8pysndlib_10generators_MovingSum.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_MovingSum.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9MovingSum_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4298, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_MovingSum = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_MovingSum_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_MovingSum)) __PYX_ERR(0, 4298, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_MovingSum_spec, __pyx_ptype_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_MovingSum = &__pyx_type_8pysndlib_10generators_MovingSum;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_MovingSum->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_MovingSum->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_MovingSum->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_MovingSum->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_MovingSum->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_MovingSum, __pyx_vtabptr_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MovingSum, (PyObject *) __pyx_ptype_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_MovingSum) < 0) __PYX_ERR(0, 4298, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_MovingVariance = &__pyx_vtable_8pysndlib_10generators_MovingVariance;
  __pyx_vtable_8pysndlib_10generators_MovingVariance.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_MovingVariance.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_14MovingVariance_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_MovingVariance = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_MovingVariance_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_MovingVariance)) __PYX_ERR(0, 4337, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_MovingVariance_spec, __pyx_ptype_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_MovingVariance = &__pyx_type_8pysndlib_10generators_MovingVariance;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_MovingVariance->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_MovingVariance->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_MovingVariance->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_MovingVariance->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_MovingVariance->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_MovingVariance, __pyx_vtabptr_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MovingVariance, (PyObject *) __pyx_ptype_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_MovingVariance) < 0) __PYX_ERR(0, 4337, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_MovingRMS = &__pyx_vtable_8pysndlib_10generators_MovingRMS;
  __pyx_vtable_8pysndlib_10generators_MovingRMS.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_MovingRMS.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9MovingRMS_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_MovingRMS = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_MovingRMS_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_MovingRMS)) __PYX_ERR(0, 4384, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_MovingRMS_spec, __pyx_ptype_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_MovingRMS = &__pyx_type_8pysndlib_10generators_MovingRMS;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_MovingRMS->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_MovingRMS->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_MovingRMS->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_MovingRMS->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_MovingRMS->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_MovingRMS, __pyx_vtabptr_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MovingRMS, (PyObject *) __pyx_ptype_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_MovingRMS) < 0) __PYX_ERR(0, 4384, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_MovingLength = &__pyx_vtable_8pysndlib_10generators_MovingLength;
  __pyx_vtable_8pysndlib_10generators_MovingLength.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_MovingRMS;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_MovingLength = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_MovingLength_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_MovingLength)) __PYX_ERR(0, 4424, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_MovingLength_spec, __pyx_ptype_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_MovingLength = &__pyx_type_8pysndlib_10generators_MovingLength;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_MovingLength->tp_base = __pyx_ptype_8pysndlib_10generators_MovingRMS;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_MovingLength->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_MovingLength->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_MovingLength->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_MovingLength->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_MovingLength, __pyx_vtabptr_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MovingLength, (PyObject *) __pyx_ptype_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_MovingLength) < 0) __PYX_ERR(0, 4424, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_WeightedMovingAverage = &__pyx_vtable_8pysndlib_10generators_WeightedMovingAverage;
  __pyx_vtable_8pysndlib_10generators_WeightedMovingAverage.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_WeightedMovingAverage.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_21WeightedMovingAverage_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_WeightedMovingAverage_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage)) __PYX_ERR(0, 4457, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_WeightedMovingAverage_spec, __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage = &__pyx_type_8pysndlib_10generators_WeightedMovingAverage;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage, __pyx_vtabptr_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_WeightedMovingAverage, (PyObject *) __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_WeightedMovingAverage) < 0) __PYX_ERR(0, 4457, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_ExponentiallyWeightedMovingAverage = &__pyx_vtable_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
  __pyx_vtable_8pysndlib_10generators_ExponentiallyWeightedMovingAverage.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_ExponentiallyWeightedMovingAverage.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4501, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage)) __PYX_ERR(0, 4501, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage_spec, __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage = &__pyx_type_8pysndlib_10generators_ExponentiallyWeightedMovingAverage;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, __pyx_vtabptr_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ExponentiallyWeightedMovingAvera, (PyObject *) __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage) < 0) __PYX_ERR(0, 4501, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Tanhsin = &__pyx_vtable_8pysndlib_10generators_Tanhsin;
  __pyx_vtable_8pysndlib_10generators_Tanhsin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Tanhsin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Tanhsin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Tanhsin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Tanhsin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Tanhsin)) __PYX_ERR(0, 4600, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Tanhsin_spec, __pyx_ptype_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Tanhsin = &__pyx_type_8pysndlib_10generators_Tanhsin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Tanhsin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Tanhsin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Tanhsin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Tanhsin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Tanhsin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Tanhsin, __pyx_vtabptr_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Tanhsin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Tanhsin) < 0) __PYX_ERR(0, 4600, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_Noddsin = &__pyx_vtable_8pysndlib_10generators_Noddsin;
  __pyx_vtable_8pysndlib_10generators_Noddsin.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_Noddsin.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_7Noddsin_next;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_Noddsin = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_Noddsin_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_Noddsin)) __PYX_ERR(0, 363, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_Noddsin_spec, __pyx_ptype_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_Noddsin = &__pyx_type_8pysndlib_10generators_Noddsin;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_Noddsin->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_Noddsin->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_Noddsin->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_Noddsin->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_Noddsin->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_Noddsin, __pyx_vtabptr_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Noddsin, (PyObject *) __pyx_ptype_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_Noddsin) < 0) __PYX_ERR(0, 363, __pyx_L1_error)
  #endif
  __pyx_vtabptr_8pysndlib_10generators_MovingFFT = &__pyx_vtable_8pysndlib_10generators_MovingFFT;
  __pyx_vtable_8pysndlib_10generators_MovingFFT.__pyx_base = *__pyx_vtabptr_8pysndlib_10generators_CLMGenerator;
  __pyx_vtable_8pysndlib_10generators_MovingFFT.__pyx_base.next = (double (*)(struct __pyx_obj_8pysndlib_10generators_CLMGenerator *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_10generators_12CLMGenerator_next *__pyx_optional_args))__pyx_f_8pysndlib_10generators_9MovingFFT_next;
  __pyx_vtable_8pysndlib_10generators_MovingFFT.mus_run = (PyObject *(*)(struct __pyx_obj_8pysndlib_10generators_MovingFFT *, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_8pysndlib_10generators_9MovingFFT_mus_run;
  #if CYTHON_USE_TYPE_SPECS
  __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_10generators_MovingFFT = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators_MovingFFT_spec, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_ptype_8pysndlib_10generators_MovingFFT)) __PYX_ERR(0, 4688, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators_MovingFFT_spec, __pyx_ptype_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators_MovingFFT = &__pyx_type_8pysndlib_10generators_MovingFFT;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  __pyx_ptype_8pysndlib_10generators_MovingFFT->tp_base = __pyx_ptype_8pysndlib_10generators_CLMGenerator;
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators_MovingFFT->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators_MovingFFT->tp_dictoffset && __pyx_ptype_8pysndlib_10generators_MovingFFT->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators_MovingFFT->tp_getattro = __Pyx_PyObject_GenericGetAttr;
  }
  #endif
  if (__Pyx_SetVtable(__pyx_ptype_8pysndlib_10generators_MovingFFT, __pyx_vtabptr_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_MergeVtables(__pyx_ptype_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #endif
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MovingFFT, (PyObject *) __pyx_ptype_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if (__Pyx_setup_reduce((PyObject *) __pyx_ptype_8pysndlib_10generators_MovingFFT) < 0) __PYX_ERR(0, 4688, __pyx_L1_error)
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max_spec, NULL); if (unlikely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max)) __PYX_ERR(0, 92, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max_spec, __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max) < 0) __PYX_ERR(0, 92, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max = &__pyx_type_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max) < 0) __PYX_ERR(0, 92, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max->tp_dictoffset && __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators___pyx_scope_struct__find_nxysin_max->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max_spec, NULL); if (unlikely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max)) __PYX_ERR(0, 347, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max_spec, __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max) < 0) __PYX_ERR(0, 347, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max = &__pyx_type_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max) < 0) __PYX_ERR(0, 347, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max->tp_dictoffset && __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_1_find_noddsin_max->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max_spec, NULL); if (unlikely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max)) __PYX_ERR(0, 740, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max_spec, __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max) < 0) __PYX_ERR(0, 740, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max = &__pyx_type_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max) < 0) __PYX_ERR(0, 740, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max->tp_dictoffset && __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_2_find_nsin5_max->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env_spec, NULL); if (unlikely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env)) __PYX_ERR(0, 3961, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env_spec, __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env) < 0) __PYX_ERR(0, 3961, __pyx_L1_error)
  #else
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env = &__pyx_type_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env) < 0) __PYX_ERR(0, 3961, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env->tp_dictoffset && __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype_8pysndlib_10generators___pyx_scope_struct_3_multi_expt_env->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  #if CYTHON_USE_TYPE_SPECS
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_spec, NULL); if (unlikely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y)) __PYX_ERR(1, 66, __pyx_L1_error)
  if (__Pyx_fix_up_extension_type_from_spec(&__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y_spec, __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y) < 0) __PYX_ERR(1, 66, __pyx_L1_error)
  #else
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y = &__pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  #endif
  #if !CYTHON_USE_TYPE_SPECS
  if (__Pyx_PyType_Ready(__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y) < 0) __PYX_ERR(1, 66, __pyx_L1_error)
  #endif
  #if PY_MAJOR_VERSION < 3
  __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y->tp_print = 0;
  #endif
  #if !CYTHON_COMPILING_IN_LIMITED_API
  if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y->tp_dictoffset && __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y->tp_getattro == PyObject_GenericGetAttr)) {
    __pyx_ptype___pyx_scope_struct____Pyx_CFunc_double__lParenobject__rParenexcept__3F__2D1_to_py_1y->tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict;
  }
  #endif
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_modinit_type_import_code(void) {
  __Pyx_RefNannyDeclarations
  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(4, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_8(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", 
  #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyTypeObject),
  #elif CYTHON_COMPILING_IN_LIMITED_API
  sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyTypeObject),
  #else
  sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyHeapTypeObject),
  #endif
  __Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(4, 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, 202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 202, __pyx_L1_error)
  __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 225, __pyx_L1_error)
  __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 229, __pyx_L1_error)
  __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 238, __pyx_L1_error)
  __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 809, __pyx_L1_error)
  __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 811, __pyx_L1_error)
  __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 813, __pyx_L1_error)
  __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 815, __pyx_L1_error)
  __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 817, __pyx_L1_error)
  __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 819, __pyx_L1_error)
  __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 821, __pyx_L1_error)
  __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 823, __pyx_L1_error)
  __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 825, __pyx_L1_error)
  __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 827, __pyx_L1_error)
  __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_8(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_8); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyImport_ImportModule("pysndlib.clm"); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 40, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_ptype_8pysndlib_3clm_mus_any = __Pyx_ImportType_3_0_8(__pyx_t_1, "pysndlib.clm", "mus_any", sizeof(struct __pyx_obj_8pysndlib_3clm_mus_any), __PYX_GET_STRUCT_ALIGNMENT_3_0_8(struct __pyx_obj_8pysndlib_3clm_mus_any),__Pyx_ImportType_CheckSize_Warn_3_0_8); if (!__pyx_ptype_8pysndlib_3clm_mus_any) __PYX_ERR(5, 40, __pyx_L1_error)
  __pyx_vtabptr_8pysndlib_3clm_mus_any = (struct __pyx_vtabstruct_8pysndlib_3clm_mus_any*)__Pyx_GetVtable(__pyx_ptype_8pysndlib_3clm_mus_any); if (unlikely(!__pyx_vtabptr_8pysndlib_3clm_mus_any)) __PYX_ERR(5, 40, __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
  __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
  /*--- Variable import code ---*/
  __Pyx_RefNannyFinishContext();
  return 0;
}

static int __Pyx_modinit_function_import_code(void) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
  /*--- Function import code ---*/
  __pyx_t_1 = PyImport_ImportModule("pysndlib.clm"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "get_srate", (void (**)(void))&__pyx_f_8pysndlib_3clm_get_srate, "double (int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_get_srate *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "random", (void (**)(void))&__pyx_f_8pysndlib_3clm_random, "double (int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_random *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "is_zero", (void (**)(void))&__pyx_f_8pysndlib_3clm_is_zero, "int (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "radians2hz", (void (**)(void))&__pyx_f_8pysndlib_3clm_radians2hz, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "hz2radians", (void (**)(void))&__pyx_f_8pysndlib_3clm_hz2radians, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "polynomial", (void (**)(void))&__pyx_f_8pysndlib_3clm_polynomial, "double (PyArrayObject *, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "make_fft_window", (void (**)(void))&__pyx_f_8pysndlib_3clm_make_fft_window, "PyArrayObject *(enum __pyx_t_8pysndlib_3clm_Window, int, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_make_fft_window *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "mus_fft", (void (**)(void))&__pyx_f_8pysndlib_3clm_mus_fft, "PyArrayObject *(PyArrayObject *, PyArrayObject *, int, int, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "mus_rectangular2polar", (void (**)(void))&__pyx_f_8pysndlib_3clm_mus_rectangular2polar, "PyArrayObject *(PyArrayObject *, PyArrayObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "oscil", (void (**)(void))&__pyx_f_8pysndlib_3clm_oscil, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_oscil *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "env", (void (**)(void))&__pyx_f_8pysndlib_3clm_env, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "env_any", (void (**)(void))&__pyx_f_8pysndlib_3clm_env_any, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, PyObject *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "polywave", (void (**)(void))&__pyx_f_8pysndlib_3clm_polywave, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_polywave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "is_polywave", (void (**)(void))&__pyx_f_8pysndlib_3clm_is_polywave, "int (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "triangle_wave", (void (**)(void))&__pyx_f_8pysndlib_3clm_triangle_wave, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_triangle_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "make_sawtooth_wave", (void (**)(void))&__pyx_f_8pysndlib_3clm_make_sawtooth_wave, "struct __pyx_obj_8pysndlib_3clm_mus_any *(double, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_make_sawtooth_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "sawtooth_wave", (void (**)(void))&__pyx_f_8pysndlib_3clm_sawtooth_wave, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_sawtooth_wave *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "pulse_train", (void (**)(void))&__pyx_f_8pysndlib_3clm_pulse_train, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_pulse_train *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "nrxysin", (void (**)(void))&__pyx_f_8pysndlib_3clm_nrxysin, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_nrxysin *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "is_nrxysin", (void (**)(void))&__pyx_f_8pysndlib_3clm_is_nrxysin, "int (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "rand", (void (**)(void))&__pyx_f_8pysndlib_3clm_rand, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_rand *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "rand_interp", (void (**)(void))&__pyx_f_8pysndlib_3clm_rand_interp, "PyObject *(struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch, struct __pyx_opt_args_8pysndlib_3clm_rand_interp *__pyx_optional_args)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "one_pole", (void (**)(void))&__pyx_f_8pysndlib_3clm_one_pole, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "moving_average", (void (**)(void))&__pyx_f_8pysndlib_3clm_moving_average, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "readin", (void (**)(void))&__pyx_f_8pysndlib_3clm_readin, "double (struct __pyx_obj_8pysndlib_3clm_mus_any *, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "bes_j0", (void (**)(void))&__pyx_f_8pysndlib_3clm_bes_j0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "bes_j1", (void (**)(void))&__pyx_f_8pysndlib_3clm_bes_j1, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "bes_jn", (void (**)(void))&__pyx_f_8pysndlib_3clm_bes_jn, "double (int, double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  if (__Pyx_ImportFunction_3_0_8(__pyx_t_1, "bes_y0", (void (**)(void))&__pyx_f_8pysndlib_3clm_bes_y0, "double (double, int __pyx_skip_dispatch)") < 0) __PYX_ERR(0, 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;
}


#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_generators(PyObject* module); /*proto*/
static PyModuleDef_Slot __pyx_moduledef_slots[] = {
  {Py_mod_create, (void*)__pyx_pymod_create},
  {Py_mod_exec, (void*)__pyx_pymod_exec_generators},
  {0, NULL}
};
#endif

#ifdef __cplusplus
namespace {
  struct PyModuleDef __pyx_moduledef =
  #else
  static struct PyModuleDef __pyx_moduledef =
  #endif
  {
      PyModuleDef_HEAD_INIT,
      "generators",
      0, /* m_doc */
    #if CYTHON_PEP489_MULTI_PHASE_INIT
      0, /* m_size */
    #elif CYTHON_USE_MODULE_STATE
      sizeof(__pyx_mstate), /* 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
    #if CYTHON_USE_MODULE_STATE
      __pyx_m_traverse, /* m_traverse */
      __pyx_m_clear, /* m_clear */
      NULL /* m_free */
    #else
      NULL, /* m_traverse */
      NULL, /* m_clear */
      NULL /* m_free */
    #endif
  };
  #ifdef __cplusplus
} /* anonymous namespace */
#endif
#endif

#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 initgenerators(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC initgenerators(void)
#else
__Pyx_PyMODINIT_FUNC PyInit_generators(void) CYTHON_SMALL_CODE; /*proto*/
__Pyx_PyMODINIT_FUNC PyInit_generators(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;
}
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none)
#else
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)
#endif
{
    PyObject *value = PyObject_GetAttrString(spec, from_name);
    int result = 0;
    if (likely(value)) {
        if (allow_none || value != Py_None) {
#if CYTHON_COMPILING_IN_LIMITED_API
            result = PyModule_AddObject(module, to_name, value);
#else
            result = PyDict_SetItemString(moddict, to_name, value);
#endif
        }
        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, PyModuleDef *def) {
    PyObject *module = NULL, *moddict, *modname;
    CYTHON_UNUSED_VAR(def);
    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;
#if CYTHON_COMPILING_IN_LIMITED_API
    moddict = module;
#else
    moddict = PyModule_GetDict(module);
    if (unlikely(!moddict)) goto bad;
#endif
    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_generators(PyObject *__pyx_pyinit_module)
#endif
#endif
{
  int stringtab_initialized = 0;
  #if CYTHON_USE_MODULE_STATE
  int pystate_addmodule_run = 0;
  #endif
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  double __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_PEP489_MULTI_PHASE_INIT
  if (__pyx_m) {
    if (__pyx_m == __pyx_pyinit_module) return 0;
    PyErr_SetString(PyExc_RuntimeError, "Module 'generators' 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
  /*--- 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("generators", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #elif CYTHON_USE_MODULE_STATE
  __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  {
    int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
    __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "generators" pseudovariable */
    if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    pystate_addmodule_run = 1;
  }
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #endif
  CYTHON_UNUSED_VAR(__pyx_t_1);
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
  Py_INCREF(__pyx_d);
  __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #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_generators(void)", 0);
  if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 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(0, 1, __pyx_L1_error)
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
  __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
  #ifdef __Pyx_CyFunction_USED
  if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Coroutine_USED
  if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_AsyncGen_USED
  if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  #ifdef __Pyx_StopAsyncIteration_USED
  if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  PyEval_InitThreads();
  #endif
  /*--- Initialize various global constants etc. ---*/
  if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  stringtab_initialized = 1;
  if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 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(0, 1, __pyx_L1_error)
  #endif
  if (__pyx_module_is_main_pysndlib__generators) {
    if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
    if (!PyDict_GetItemString(modules, "pysndlib.generators")) {
      if (unlikely((PyDict_SetItemString(modules, "pysndlib.generators", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Constants init code ---*/
  if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 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(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  (void)__Pyx_modinit_variable_import_code();
  if (unlikely((__Pyx_modinit_function_import_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
  /*--- Execution code ---*/
  #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
  if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  #endif

  /* "pysndlib/generators.pyx":7
 * 
 * import cython
 * import random             # <<<<<<<<<<<<<<
 * import pysndlib.clm as clm
 * cimport pysndlib.clm as clm
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_random, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_random, __pyx_t_2) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":8
 * import cython
 * import random
 * import pysndlib.clm as clm             # <<<<<<<<<<<<<<
 * cimport pysndlib.clm as clm
 * import numpy as np
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_pysndlib_clm, __pyx_tuple__73); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_clm, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":10
 * import pysndlib.clm as clm
 * cimport pysndlib.clm as clm
 * import numpy as np             # <<<<<<<<<<<<<<
 * cimport numpy as np
 * 
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_2) < 0) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":13
 * cimport numpy as np
 * 
 * import math             # <<<<<<<<<<<<<<
 * ## TODO: Look into using cimports for c math for c . as here - https://cython.readthedocs.io/en/latest/src/tutorial/pure.html?highlight=math#calling-c-functions
 * from math import sin, fabs, cos, tan, pow, fabs, floor, cosh, exp, sinh, atan2, log, acos, sqrt, ceil, tanh
 */
  __pyx_t_2 = __Pyx_ImportDottedModule(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_2) < 0) __PYX_ERR(0, 13, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":15
 * import math
 * ## TODO: Look into using cimports for c math for c . as here - https://cython.readthedocs.io/en/latest/src/tutorial/pure.html?highlight=math#calling-c-functions
 * from math import sin, fabs, cos, tan, pow, fabs, floor, cosh, exp, sinh, atan2, log, acos, sqrt, ceil, tanh             # <<<<<<<<<<<<<<
 * 
 * cdef cython.double NEARLY_ZERO = 1.0e-10
 */
  __pyx_t_2 = PyList_New(16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_sin);
  __Pyx_GIVEREF(__pyx_n_s_sin);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_sin)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_fabs);
  __Pyx_GIVEREF(__pyx_n_s_fabs);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_fabs)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_cos);
  __Pyx_GIVEREF(__pyx_n_s_cos);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_cos)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_tan);
  __Pyx_GIVEREF(__pyx_n_s_tan);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_tan)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_pow);
  __Pyx_GIVEREF(__pyx_n_s_pow);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_pow)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_fabs);
  __Pyx_GIVEREF(__pyx_n_s_fabs);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_fabs)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_floor);
  __Pyx_GIVEREF(__pyx_n_s_floor);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_floor)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_cosh);
  __Pyx_GIVEREF(__pyx_n_s_cosh);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_cosh)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_exp);
  __Pyx_GIVEREF(__pyx_n_s_exp);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_exp)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_sinh);
  __Pyx_GIVEREF(__pyx_n_s_sinh);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_sinh)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_atan2);
  __Pyx_GIVEREF(__pyx_n_s_atan2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_atan2)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_log);
  __Pyx_GIVEREF(__pyx_n_s_log);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_log)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_acos);
  __Pyx_GIVEREF(__pyx_n_s_acos);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_acos)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_sqrt);
  __Pyx_GIVEREF(__pyx_n_s_sqrt);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_sqrt)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_ceil);
  __Pyx_GIVEREF(__pyx_n_s_ceil);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_ceil)) __PYX_ERR(0, 15, __pyx_L1_error);
  __Pyx_INCREF(__pyx_n_s_tanh);
  __Pyx_GIVEREF(__pyx_n_s_tanh);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_tanh)) __PYX_ERR(0, 15, __pyx_L1_error);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_math, __pyx_t_2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_sin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sin, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fabs, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_cos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cos, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_tan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tan, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_pow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pow, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_fabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fabs, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_floor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_floor, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_cosh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cosh, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_exp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_exp, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_sinh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sinh, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_atan2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_atan2, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_log); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_log, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_acos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_acos, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sqrt, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_ceil); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ceil, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_tanh); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tanh, __pyx_t_2) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":17
 * from math import sin, fabs, cos, tan, pow, fabs, floor, cosh, exp, sinh, atan2, log, acos, sqrt, ceil, tanh
 * 
 * cdef cython.double NEARLY_ZERO = 1.0e-10             # <<<<<<<<<<<<<<
 * cdef cython.double TWO_PI = math.pi * 2
 * cdef cython.double PI = math.pi
 */
  __pyx_v_8pysndlib_10generators_NEARLY_ZERO = 1.0e-10;

  /* "pysndlib/generators.pyx":18
 * 
 * cdef cython.double NEARLY_ZERO = 1.0e-10
 * cdef cython.double TWO_PI = math.pi * 2             # <<<<<<<<<<<<<<
 * cdef cython.double PI = math.pi
 * 
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_math); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_MultiplyObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_8pysndlib_10generators_TWO_PI = __pyx_t_4;

  /* "pysndlib/generators.pyx":19
 * cdef cython.double NEARLY_ZERO = 1.0e-10
 * cdef cython.double TWO_PI = math.pi * 2
 * cdef cython.double PI = math.pi             # <<<<<<<<<<<<<<
 * 
 * cdef class CLMGenerator:
 */
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_math); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 19, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_8pysndlib_10generators_PI = __pyx_t_4;

  /* "pysndlib/generators.pyx":22
 * 
 * cdef class CLMGenerator:
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         pass
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_12CLMGenerator_1next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CLMGenerator_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__76);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 22, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_CLMGenerator);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_12CLMGenerator_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CLMGenerator___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_CLMGenerator);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_CLMGenerator, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_CLMGenerator__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_12CLMGenerator_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_CLMGenerator___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_CLMGenerator, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_CLMGenerator);

  /* "pysndlib/generators.pyx":34
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Nssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__82);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 34, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Nssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Nssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nssb);

  /* "pysndlib/generators.pyx":51
 * 
 * 
 * cpdef Nssb make_nssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nssb generator. nssb is the single side-band version of ncos and nsin. It is very similar to nxysin and nxycos.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_1make_nssb, 0, __pyx_n_s_make_nssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__87);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nssb, __pyx_t_2) < 0) __PYX_ERR(0, 51, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":62
 * 
 * 
 * cpdef cython.double nssb(Nssb gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_3nssb, 0, __pyx_n_s_nssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__90);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nssb, __pyx_t_2) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":73
 * 
 * 
 * cpdef cython.bint is_nssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5is_nssb, 0, __pyx_n_s_is_nssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nssb, __pyx_t_2) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":84
 * # --------------- nxysin ---------------- #
 * 
 * def nodds(x, n):             # <<<<<<<<<<<<<<
 *     den = sin(x)
 *     num = sin(n * x)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7nodds, 0, __pyx_n_s_nodds, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nodds, __pyx_t_2) < 0) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":92
 *         return (num*num) / den
 * 
 * def find_nxysin_max(n, ratio):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *         a2 = x / 2
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9find_nxysin_max, 0, __pyx_n_s_find_nxysin_max, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_nxysin_max, __pyx_t_2) < 0) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":143
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxysin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxysin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__98);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxysin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 143, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxysin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxysin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxysin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxysin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxysin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxysin, (type(self), 0xc249d14, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxysin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxysin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxysin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxysin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxysin);

  /* "pysndlib/generators.pyx":158
 * 
 * 
 * cpdef Nxysin make_nxysin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxysin generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11make_nxysin, 0, __pyx_n_s_make_nxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__102);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nxysin, __pyx_t_2) < 0) __PYX_ERR(0, 158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":170
 *     return Nxysin(frequency, ratio, n)
 * 
 * cpdef cython.double nxysin(Nxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sines from frequency spaced by frequency * ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_13nxysin, 0, __pyx_n_s_nxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 170, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__104);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nxysin, __pyx_t_2) < 0) __PYX_ERR(0, 170, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxysin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15is_nxysin, 0, __pyx_n_s_is_nxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nxysin, __pyx_t_2) < 0) __PYX_ERR(0, 181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":201
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxycos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxycos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__107);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxycos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxycos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxycos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxycos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxycos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxycos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxycos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxycos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Nxycos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxycos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxycos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxycos);

  /* "pysndlib/generators.pyx":215
 * 
 * 
 * cpdef Nxycos make_nxycos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """Creates an nxycos generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'."""
 *     return Nxycos(frequency, ratio, n)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_17make_nxycos, 0, __pyx_n_s_make_nxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__111);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nxycos, __pyx_t_2) < 0) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":219
 *     return Nxycos(frequency, ratio, n)
 * 
 * cpdef cython.double nxycos(Nxycos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_19nxycos, 0, __pyx_n_s_nxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__113);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nxycos, __pyx_t_2) < 0) __PYX_ERR(0, 219, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":229
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxycos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_21is_nxycos, 0, __pyx_n_s_is_nxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nxycos, __pyx_t_2) < 0) __PYX_ERR(0, 229, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":249
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__116);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1cos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1cos);

  /* "pysndlib/generators.pyx":264
 * 
 * 
 * cpdef cython.double make_nxy1cos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1co generator that produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_23make_nxy1cos, 0, __pyx_n_s_make_nxy1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__120);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nxy1cos, __pyx_t_2) < 0) __PYX_ERR(0, 264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":273
 * 
 * 
 * cpdef cython.double nxy1cos(Nxy1cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_25nxy1cos, 0, __pyx_n_s_nxy1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__122);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nxy1cos, __pyx_t_2) < 0) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":283
 * 
 * 
 * cpdef cython.bint is_nxy1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_27is_nxy1cos, 0, __pyx_n_s_is_nxy1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nxy1cos, __pyx_t_2) < 0) __PYX_ERR(0, 283, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":304
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x  = self.angle
 *         cdef cython.double y  = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1sin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1sin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__125);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1sin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1sin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1sin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1sin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1sin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1sin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nxy1sin, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nxy1sin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nxy1sin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nxy1sin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nxy1sin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nxy1sin);

  /* "pysndlib/generators.pyx":317
 * 
 * 
 * cpdef Nxy1sin make_nxy1sin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nxy1sin generator hat produces a sum of 'n' sinsoids starting at 'frequency', spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_29make_nxy1sin, 0, __pyx_n_s_make_nxy1sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__129);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nxy1sin, __pyx_t_2) < 0) __PYX_ERR(0, 317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":325
 * 
 * 
 * cpdef cython.double nxy1sin(Nxy1sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_31nxy1sin, 0, __pyx_n_s_nxy1sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__131);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nxy1sin, __pyx_t_2) < 0) __PYX_ERR(0, 325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":335
 * 
 * 
 * cpdef cython.bint is_nxy1sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nxy1sin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_33is_nxy1sin, 0, __pyx_n_s_is_nxy1sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nxy1sin, __pyx_t_2) < 0) __PYX_ERR(0, 335, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":347
 * # --------------- noddsin ---------------- #
 * 
 * def find_noddsin_max(n):             # <<<<<<<<<<<<<<
 *     def find_mid_max(n=n, lo=0.0, hi= PI / ((2 * n) + 0.5)):
 *         mid = (lo + hi) / 2
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_35find_noddsin_max, 0, __pyx_n_s_find_noddsin_max, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_noddsin_max, __pyx_t_2) < 0) __PYX_ERR(0, 347, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":378
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double n = <cython.double>self.n
 *         cdef cython.double snx = sin(n * self.angle)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddsin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddsin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__136);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddsin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddsin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddsin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddsin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddsin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddsin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddsin, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddsin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddsin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddsin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddsin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddsin);

  /* "pysndlib/generators.pyx":392
 * 
 * 
 * cpdef Noddsin make_noddsin(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddsin generator that produces 'n' odd-numbered sines spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_37make_noddsin, 0, __pyx_n_s_make_noddsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__140);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_noddsin, __pyx_t_2) < 0) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":399
 * 
 * 
 * cpdef cython.double noddsin(Noddsin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_39noddsin, 0, __pyx_n_s_noddsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__142);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_noddsin, __pyx_t_2) < 0) __PYX_ERR(0, 399, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":410
 * 
 * 
 * cpdef cython.bint is_noddsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddsin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_41is_noddsin, 0, __pyx_n_s_is_noddsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_noddsin, __pyx_t_2) < 0) __PYX_ERR(0, 410, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":431
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double n = self.n
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__145);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddcos);

  /* "pysndlib/generators.pyx":451
 * 
 * 
 * cpdef Noddcos make_noddcos(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddcos generator that produces 'n' odd-numbered cosines spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_43make_noddcos, 0, __pyx_n_s_make_noddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__149);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_noddcos, __pyx_t_2) < 0) __PYX_ERR(0, 451, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":457
 *     return Noddcos(frequency, ratio, n)
 * 
 * cpdef cython.double noddcos(Noddcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n odd-numbered sines spaced by ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_45noddcos, 0, __pyx_n_s_noddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__151);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_noddcos, __pyx_t_2) < 0) __PYX_ERR(0, 457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":467
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_noddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_47is_noddcos, 0, __pyx_n_s_is_noddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_noddcos, __pyx_t_2) < 0) __PYX_ERR(0, 467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":488
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__154);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Noddssb, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Noddssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Noddssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Noddssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Noddssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Noddssb);

  /* "pysndlib/generators.pyx":507
 * 
 * 
 * cpdef Noddssb make_noddssb(frequency=0, ratio=1., n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an noddssb generator that produces 'n' sinusoids from frequency spaced by 2 * 'ratio' * 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_49make_noddssb, 0, __pyx_n_s_make_noddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__158);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_noddssb, __pyx_t_2) < 0) __PYX_ERR(0, 507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":514
 * 
 * 
 * cpdef cython.double noddssb(Noddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns n sinusoids from frequency spaced by 2 * ratio * frequency.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_51noddssb, 0, __pyx_n_s_noddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__160);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_noddssb, __pyx_t_2) < 0) __PYX_ERR(0, 514, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":525
 * 
 * 
 * cpdef cython.bint is_noddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an noddssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_53is_noddssb, 0, __pyx_n_s_is_noddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_noddssb, __pyx_t_2) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":545
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = sin(.5 * x)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos2_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos2_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__163);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos2);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos2_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos2___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos2);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos2, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos2__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos2_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos2___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__165)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos2, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos2);

  /* "pysndlib/generators.pyx":560
 * 
 * 
 * cpdef Ncos2 make_ncos2(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos2 (Fejer kernel) generator that will produce n sinusoids spaced by frequency scaled by (n-k)/(n+1)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_55make_ncos2, 0, __pyx_n_s_make_ncos2, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__167)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_ncos2, __pyx_t_2) < 0) __PYX_ERR(0, 560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":567
 * 
 * 
 * cpdef cython.double ncos2(Ncos2 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_57ncos2, 0, __pyx_n_s_ncos2, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__169)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__170);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ncos2, __pyx_t_2) < 0) __PYX_ERR(0, 567, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":578
 * 
 * 
 * cpdef cython.bint is_ncos2(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos2
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_59is_ncos2, 0, __pyx_n_s_is_ncos2, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__171)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_ncos2, __pyx_t_2) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":591
 * cdef class Ncos4(Ncos2):
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val = super(Ncos4, self).next(fm)
 *         return val * val
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos4_1next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos4_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__173);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos4);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos4_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos4___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos4);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos4, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos4__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos4_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos4___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos4, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos4);

  /* "pysndlib/generators.pyx":596
 * 
 * 
 * cpdef Ncos4 make_ncos4(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos4 (Jackson kernel) generator that produces 'n' sinusoids spaced by 'frequency' scaled by ((n-k)/(n+1))^2
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_61make_ncos4, 0, __pyx_n_s_make_ncos4, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__176)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_ncos4, __pyx_t_2) < 0) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":603
 * 
 * 
 * cpdef cython.double ncos4(Ncos4 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines from frequency spaced by frequency * ratio.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_63ncos4, 0, __pyx_n_s_ncos4, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__178);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ncos4, __pyx_t_2) < 0) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":614
 * 
 * 
 * cpdef cython.bint is_ncos4(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos4
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_65is_ncos4, 0, __pyx_n_s_is_ncos4, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_ncos4, __pyx_t_2) < 0) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":632
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result  = 0.0
 *         cdef cython.double result1  = 0.0
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Npcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__180)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__181);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Npcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npcos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Npcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npcos);

  /* "pysndlib/generators.pyx":655
 * 
 * 
 * cpdef Npcos make_npcos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an npcos (Poussin kernel) generator that produces
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_67make_npcos, 0, __pyx_n_s_make_npcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_npcos, __pyx_t_2) < 0) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":663
 * 
 * 
 * cpdef cython.double npcos(Npcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n*2+1 sinusoids spaced by frequency with amplitudes in a sort of tent shape.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_69npcos, 0, __pyx_n_s_npcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__186);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_npcos, __pyx_t_2) < 0) __PYX_ERR(0, 663, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":674
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_71is_npcos, 0, __pyx_n_s_is_npcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_npcos, __pyx_t_2) < 0) __PYX_ERR(0, 674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":695
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         x: cython.double = self.angle
 *         den: cython.double = tan(.5 * x)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos5_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos5_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__188)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__189);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos5, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos5);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos5_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos5___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos5, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos5);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ncos5, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ncos5__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ncos5_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ncos5___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ncos5, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ncos5);

  /* "pysndlib/generators.pyx":709
 * 
 * 
 * cpdef Ncos5 make_ncos5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an ncos5 generator that produces 'n' cosines spaced by 'frequency'.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_73make_ncos5, 0, __pyx_n_s_make_ncos5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_ncos5, __pyx_t_2) < 0) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":717
 * 
 * 
 * cpdef cython.double ncos5(gen: Ncos5, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency. All are equal amplitude except the first and last at half amp
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_gen, __pyx_n_s_Ncos5) < 0) __PYX_ERR(0, 717, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_75ncos5, 0, __pyx_n_s_ncos5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__194);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ncos5, __pyx_t_3) < 0) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":728
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ncos5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ncos5
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_77is_ncos5, 0, __pyx_n_s_is_ncos5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__195)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_ncos5, __pyx_t_3) < 0) __PYX_ERR(0, 728, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":740
 * # --------------- nsin5 ---------------- #
 * 
 * def find_nsin5_max(n):             # <<<<<<<<<<<<<<
 *     def ns(x, n):
 *             den = tan(.5 * x)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_79find_nsin5_max, 0, __pyx_n_s_find_nsin5_max, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_find_nsin5_max, __pyx_t_3) < 0) __PYX_ERR(0, 740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":772
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double den = tan(.5 * x)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nsin5_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsin5_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__199);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsin5, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 772, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsin5);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nsin5_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsin5___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsin5, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsin5);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsin5, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsin5__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nsin5_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsin5___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsin5, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsin5);

  /* "pysndlib/generators.pyx":787
 * 
 * 
 * cpdef Nsin5 make_nsin5(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsin5 generator that produces 'n' sines spaced by 'frequency'.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_81make_nsin5, 0, __pyx_n_s_make_nsin5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nsin5, __pyx_t_3) < 0) __PYX_ERR(0, 787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":794
 *     return Nsin5(frequency, n)
 * 
 * cpdef cython.double nsin5(Nsin5 gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: noddssb gen
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_83nsin5, 0, __pyx_n_s_nsin5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__204);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nsin5, __pyx_t_3) < 0) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":803
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsin5(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsin5
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_85is_nsin5, 0, __pyx_n_s_is_nsin5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__205)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nsin5, __pyx_t_3) < 0) __PYX_ERR(0, 803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":815
 * # --------------- nrsin ---------------- #
 * 
 * cpdef clm.mus_any make_nrsin(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_87make_nrsin, 0, __pyx_n_s_make_nrsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__207)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__208);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nrsin, __pyx_t_3) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":818
 *     return clm.make_nrxysin(frequency, 1., n, r)
 * 
 * cpdef cython.double nrsin(clm.mus_any gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nrsin gen
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_89nrsin, 0, __pyx_n_s_nrsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__210);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nrsin, __pyx_t_3) < 0) __PYX_ERR(0, 818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":826
 *     return clm.nrxysin(gen, fm)
 * 
 * cpdef cython.bint is_nrsin(gen):             # <<<<<<<<<<<<<<
 *     return clm.is_nrxysin(gen)
 * # --------------- nrcos ---------------- #
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_91is_nrsin, 0, __pyx_n_s_is_nrsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nrsin, __pyx_t_3) < 0) __PYX_ERR(0, 826, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":846
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double rcos = self.r * cos(self.angle)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__213);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrcos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrcos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrcos, (type(self), 0x5aa53a6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrcos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__215)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrcos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrcos);

  /* "pysndlib/generators.pyx":894
 * 
 * 
 * cpdef Nrcos make_nrcos(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrcos generator that produces 'n' cosines
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_93make_nrcos, 0, __pyx_n_s_make_nrcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__217);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nrcos, __pyx_t_3) < 0) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":901
 *     return Nrcos(frequency, n, r)
 * 
 * cpdef cython.double nrcos(Nrcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns n cosines spaced by frequency with amplitudes scaled by r^k.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_95nrcos, 0, __pyx_n_s_nrcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__219);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nrcos, __pyx_t_3) < 0) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":911
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nrcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrcos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_97is_nrcos, 0, __pyx_n_s_is_nrcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nrcos, __pyx_t_3) < 0) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":936
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_fm, __pyx_kp_s_cython_double) < 0) __PYX_ERR(0, 936, __pyx_L1_error)
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__222);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_2, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrssb);

  /* "pysndlib/generators.pyx":951
 * 
 * 
 *     cpdef call_interp(self, cython.double fm =0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrssb_7call_interp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrssb_call_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__225);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb, __pyx_n_s_call_interp, __pyx_t_2) < 0) __PYX_ERR(0, 951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrssb_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nrssb, (type(self), 0x0e483d0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nrssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nrssb_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nrssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nrssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nrssb);

  /* "pysndlib/generators.pyx":964
 * 
 * 
 * cpdef Nrssb make_nrssb(frequency=0, ratio=1.0, n=1, r=.5) :             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nrssb generator that produces returns n sinusoids from
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_99make_nrssb, 0, __pyx_n_s_make_nrssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__230);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nrssb, __pyx_t_2) < 0) __PYX_ERR(0, 964, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":971
 *     return Nrssb(frequency, ratio, n, r)
 * 
 * cpdef cython.double nrssb(Nrssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_101nrssb, 0, __pyx_n_s_nrssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__232);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nrssb, __pyx_t_2) < 0) __PYX_ERR(0, 971, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":981
 *     return gen.next(fm)
 * 
 * cpdef cython.double nrssb_interp(Nrssb gen, cython.double fm=0.,cython.double interp =0. ):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio with amplitudes scaled by r^k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_103nrssb_interp, 0, __pyx_n_s_nrssb_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__234)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__235);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nrssb_interp, __pyx_t_2) < 0) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":991
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_nrssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nrssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_105is_nrssb, 0, __pyx_n_s_is_nrssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nrssb, __pyx_t_2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1013
 *         self.interp = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nkssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nkssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__238);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1013, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nkssb);

  /* "pysndlib/generators.pyx":1031
 *         return ((s1 * sin(cxx)) - (c1 * cos(cxx))) * self.norm
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle * self.ratio
 *         cdef cython.double cxx = self.angle - x
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nkssb_5call_interp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nkssb_call_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__240);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb, __pyx_n_s_call_interp, __pyx_t_2) < 0) __PYX_ERR(0, 1031, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nkssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nkssb_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nkssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__241)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nkssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nkssb, (type(self), 0xa147321, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nkssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Nkssb_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nkssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nkssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nkssb);

  /* "pysndlib/generators.pyx":1061
 *         self.norm = 1.0 / (.5 * val * (val - 1.))
 * 
 * cpdef Nkssb make_nkssb(frequency=0, ratio=1.0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nkssb generator that produces n sinusoids from
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_107make_nkssb, 0, __pyx_n_s_make_nkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__243)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__244);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nkssb, __pyx_t_2) < 0) __PYX_ERR(0, 1061, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1068
 *     return Nkssb(frequency, ratio, n)
 * 
 * cpdef cython.double nkssb(Nkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n sinusoids from frequency spaced by frequency * ratio with amplitude k
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_109nkssb, 0, __pyx_n_s_nkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__246);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nkssb, __pyx_t_2) < 0) __PYX_ERR(0, 1068, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1079
 *     return gen.next(fm)
 * 
 * cpdef cython.double nkssb_interp(Nkssb gen, cython.double fm=0., cython.double interp=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns n sinusoids from frequency spaced by frequency * ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_111nkssb_interp, 0, __pyx_n_s_nkssb_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__247)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__248);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nkssb_interp, __pyx_t_2) < 0) __PYX_ERR(0, 1079, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1087
 *     return gen.call_interp(fm, interp)
 * 
 * cpdef cython.bint is_nkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nkssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_113is_nkssb, 0, __pyx_n_s_is_nkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__249)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nkssb, __pyx_t_2) < 0) __PYX_ERR(0, 1087, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1113
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = cos(self.n2 * x)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nsincos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsincos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__251);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsincos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsincos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nsincos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsincos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsincos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsincos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nsincos, (type(self), 0xaa0fd61, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nsincos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Nsincos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nsincos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nsincos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nsincos);

  /* "pysndlib/generators.pyx":1124
 * 
 * 
 * cpdef Nsincos make_nsincos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     return Nsincos(frequency, n)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_115make_nsincos, 0, __pyx_n_s_make_nsincos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nsincos, __pyx_t_2) < 0) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1127
 *     return Nsincos(frequency, n)
 * 
 * cpdef cython.double nsincos(Nsincos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: nsincos gen
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_117nsincos, 0, __pyx_n_s_nsincos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__256);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nsincos, __pyx_t_2) < 0) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1135
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nsincos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nsincos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_119is_nsincos, 0, __pyx_n_s_is_nsincos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nsincos, __pyx_t_2) < 0) __PYX_ERR(0, 1135, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1155
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double tn = tan(.5 * x)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5N1cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_N1cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__258)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__259);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_N1cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_N1cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5N1cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_N1cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__260)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_N1cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_N1cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_N1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_N1cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5N1cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_N1cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_N1cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_N1cos);

  /* "pysndlib/generators.pyx":1167
 *         return self.next(fm)
 * 
 * cpdef N1cos make_n1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an n1cos generator that produces a spikey waveform similar to ncos2
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_121make_n1cos, 0, __pyx_n_s_make_n1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__262)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1167, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_n1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1167, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1173
 *     return N1cos(frequency, n)
 * 
 * cpdef cython.double n1cos(N1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     :param gen: n1cos gen
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_123n1cos, 0, __pyx_n_s_n1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__264);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_n1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1181
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_n1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an n1cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_125is_n1cos, 0, __pyx_n_s_is_n1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1181, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_n1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1181, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1200
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double num = ((self.n + 2) * sin((self.n * x) / 2)) - (self.n * sin(((self.n + 2) * x) / 2))
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos1cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos1cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__266)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__267);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos1cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1200, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos1cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos1cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos1cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__268)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos1cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos1cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos1cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos1cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos1cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos1cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__269)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos1cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos1cos);

  /* "pysndlib/generators.pyx":1216
 *         return self.next(fm)
 * 
 * cpdef Npos1cos make_npos1cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an nsincos generator that produces n cosines spaced
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_127make_npos1cos, 0, __pyx_n_s_make_npos1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1216, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_npos1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1216, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1223
 *     return Npos1cos(frequency, n)
 * 
 * cpdef cython.double npos1cos(Npos1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency with amplitude sin(k*pi/(n+1))/sin(pi/(n+1))
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_129npos1cos, 0, __pyx_n_s_npos1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__271)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1223, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__272);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_npos1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1223, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1233
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos1cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_131is_npos1cos, 0, __pyx_n_s_is_npos1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__273)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_npos1cos, __pyx_t_2) < 0) __PYX_ERR(0, 1233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1252
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double sx = sin(x / 2.)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos3cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos3cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__275);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos3cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1252, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos3cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos3cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos3cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos3cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos3cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Npos3cos, (type(self), 0x6cb8864, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Npos3cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Npos3cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Npos3cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__277)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Npos3cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Npos3cos);

  /* "pysndlib/generators.pyx":1266
 *         return self.next(fm)
 * 
 * cpdef Npos3cos make_npos3cos(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates an npos3cos generator that produces n cosines spaced by frequency.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_133make_npos3cos, 0, __pyx_n_s_make_npos3cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_npos3cos, __pyx_t_2) < 0) __PYX_ERR(0, 1266, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1272
 *     return Npos3cos(frequency, n)
 * 
 * cpdef cython.double npos3cos(Npos3cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     produces n cosines spaced by frequency
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_135npos3cos, 0, __pyx_n_s_npos3cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__279)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__280);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_npos3cos, __pyx_t_2) < 0) __PYX_ERR(0, 1272, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1282
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_npos3cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an npos3cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_137is_npos3cos, 0, __pyx_n_s_is_npos3cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__281)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_npos3cos, __pyx_t_2) < 0) __PYX_ERR(0, 1282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1306
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return ((self.rrm1 / (self.rrp1 - (self.r2 * clm.oscil(self.osc, fm)))) - 1.0) * self.norm
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__283);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rcos, (type(self), 0xf28f7a9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__285)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rcos);

  /* "pysndlib/generators.pyx":1336
 * 
 * 
 * cpdef Rcos make_rcos(frequency=0, r=1):             # <<<<<<<<<<<<<<
 *     """
 *     Creates an rcos generator that produces many cosines spaced by frequency with amplitude r^k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_139make_rcos, 0, __pyx_n_s_make_rcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__287)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rcos, __pyx_t_2) < 0) __PYX_ERR(0, 1336, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1342
 *     return Rcos(frequency, r)
 * 
 * cpdef cython.double rcos(Rcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude r^k
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_141rcos, 0, __pyx_n_s_rcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__289);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rcos, __pyx_t_2) < 0) __PYX_ERR(0, 1342, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1353
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_143is_rcos, 0, __pyx_n_s_is_rcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rcos, __pyx_t_2) < 0) __PYX_ERR(0, 1353, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1373
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1373, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__292);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1373, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rssb);

  /* "pysndlib/generators.pyx":1384
 *         return (carsin * sumsin) - (canrcos * sumcos) / (2.0 * den)
 * 
 *     cpdef cython.double call_interp(self, cython.double fm=0.0, cython.double interp=0.0):             # <<<<<<<<<<<<<<
 * 
 *         cdef cython.double angle1 = self.angle
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rssb_5call_interp, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rssb_call_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__294);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb, __pyx_n_s_call_interp, __pyx_t_2) < 0) __PYX_ERR(0, 1384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rssb_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Rssb_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__296)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rssb);

  /* "pysndlib/generators.pyx":1409
 * 
 * 
 * cpdef Rssb make_rssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rssb generator that produces many cosines from frequency spaced by frequency * ratio with amplitude r^k."
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_145make_rssb, 0, __pyx_n_s_make_rssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__298)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__299);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rssb, __pyx_t_2) < 0) __PYX_ERR(0, 1409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1415
 *     return Rssb(frequency, ratio, r)
 * 
 * cpdef cython.double rssb(Rssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio with amplitude r^k."""
 *     return gen.next(fm)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_147rssb, 0, __pyx_n_s_rssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__300)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__301);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rssb, __pyx_t_2) < 0) __PYX_ERR(0, 1415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1419
 *     return gen.next(fm)
 * 
 * cpdef cython.double rssb_interp(Rssb gen, cython.double fm=0., cython.double interp=0.):             # <<<<<<<<<<<<<<
 *     """returns many cosines from frequency spaced by frequency * ratio
 *     with amplitude r^k. The 'interp' argument determines whether the sidebands
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_149rssb_interp, 0, __pyx_n_s_rssb_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__302)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__303);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rssb_interp, __pyx_t_2) < 0) __PYX_ERR(0, 1419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1431
 *     return gen.call_interp(fm)
 * 
 * cpdef cython.bint is_rssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_151is_rssb, 0, __pyx_n_s_is_rssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rssb, __pyx_t_2) < 0) __PYX_ERR(0, 1431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1454
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxysin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxysin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__305)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__306);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxysin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxysin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxysin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxysin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__307)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxysin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxysin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxysin, (type(self), 0xf625d4b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxysin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxysin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxysin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__308)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxysin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxysin);

  /* "pysndlib/generators.pyx":1474
 *         self.rr = 1.0 + (self.r*self.r)
 * 
 * cpdef Rxysin make_rxysin(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxysin generator (similar to rssb) that produces many sines from frequency spaced by frequency * ratio with amplitude r^k."
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_153make_rxysin, 0, __pyx_n_s_make_rxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__309)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__310);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rxysin, __pyx_t_2) < 0) __PYX_ERR(0, 1474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1480
 *     return Rxysin(frequency, ratio, r)
 * 
 * cpdef cython.double rxysin(Rxysin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * ratio with amplitude r^k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_155rxysin, 0, __pyx_n_s_rxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__311)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__312);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rxysin, __pyx_t_2) < 0) __PYX_ERR(0, 1480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1491
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxysin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxysin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_157is_rxysin, 0, __pyx_n_s_is_rxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__313)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rxysin, __pyx_t_2) < 0) __PYX_ERR(0, 1491, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1515
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxycos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxycos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__315);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxycos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1515, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxycos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxycos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxycos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__316)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxycos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxycos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rxycos, (type(self), 0xe37ae4e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rxycos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rxycos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rxycos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rxycos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rxycos);

  /* "pysndlib/generators.pyx":1534
 * 
 * 
 * cpdef Rxycos make_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rxycos generator that produces many cosines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_159make_rxycos, 0, __pyx_n_s_make_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__318)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__319);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1541
 *     return Rxycos(frequency, ratio, r)
 * 
 * cpdef cython.double rxycos(Rxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_161rxycos, 0, __pyx_n_s_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__320)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1541, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__321);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1541, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1551
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rxycos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_163is_rxycos, 0, __pyx_n_s_is_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__322)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1574
 * 
 * 
 *     cpdef clamp_rxycos_r(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef maxr = self.cutoff**( 1.0 /  floor((TWO_PI / (3.0 * self.ratio * (fm + self.frequency))) - (1.0 / self.ratio)))
 *         if self.r >= 0.0:
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10SafeRxycos_3clamp_rxycos_r, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SafeRxycos_clamp_rxycos_r, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__323)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__324);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos, __pyx_n_s_clamp_rxycos_r, __pyx_t_2) < 0) __PYX_ERR(0, 1574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SafeRxycos);

  /* "pysndlib/generators.pyx":1582
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10SafeRxycos_5next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SafeRxycos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__326);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SafeRxycos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10SafeRxycos_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SafeRxycos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__327)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SafeRxycos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SafeRxycos, (type(self), 0x83bc4d6, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SafeRxycos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10SafeRxycos_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SafeRxycos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SafeRxycos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SafeRxycos);

  /* "pysndlib/generators.pyx":1624
 * 
 * 
 * cpdef SafeRxycos make_safe_rxycos(frequency=0, ratio=1, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a safe-rxycos generator that produces many cosines from
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_165make_safe_rxycos, 0, __pyx_n_s_make_safe_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__329)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__330);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_safe_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1631
 *     return SafeRxycos(frequency, ratio, r)
 * 
 * cpdef cython.double safe_rxycos(SafeRxycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency spaced by frequency * ratio with amplitude r^k where 'r' is restricted to a safe value.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_167safe_rxycos, 0, __pyx_n_s_safe_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__331)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__332);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_safe_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1641
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_safe_rxycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an safe_rxycos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_169is_safe_rxycos, 0, __pyx_n_s_is_safe_rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__333)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_safe_rxycos, __pyx_t_2) < 0) __PYX_ERR(0, 1641, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1665
 *         self.scaler = sinh(self.r) * self.offset
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (self.scaler / clm.polywave(self.osc, fm) - self.offset)
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ercos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ercos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__335);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ercos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1665, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ercos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ercos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ercos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__336)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ercos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ercos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Ercos, (type(self), 0xe27f1b5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Ercos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Ercos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Ercos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Ercos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Ercos);

  /* "pysndlib/generators.pyx":1688
 * 
 * 
 * cpdef Ercos make_ercos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an ercos generator (a special case of rcos) that produces
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_171make_ercos, 0, __pyx_n_s_make_ercos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__338)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1688, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__339);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_ercos, __pyx_t_2) < 0) __PYX_ERR(0, 1688, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1695
 *     return Ercos(frequency, r)
 * 
 * cpdef cython.double ercos(Ercos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from frequency with amplitude e^(-kr).
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_173ercos, 0, __pyx_n_s_ercos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__341);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ercos, __pyx_t_2) < 0) __PYX_ERR(0, 1695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1705
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_ercos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an ercos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_175is_ercos, 0, __pyx_n_s_is_ercos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_ercos, __pyx_t_2) < 0) __PYX_ERR(0, 1705, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1726
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Erssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Erssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__343)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__344);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Erssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1726, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Erssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Erssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Erssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Erssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Erssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Erssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Erssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Erssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Erssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Erssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Erssb);

  /* "pysndlib/generators.pyx":1742
 * 
 * 
 * cpdef Erssb make_erssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an erssb generator (a special case of rssb) the produces
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_177make_erssb, 0, __pyx_n_s_make_erssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__348);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_erssb, __pyx_t_2) < 0) __PYX_ERR(0, 1742, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1749
 *     return Erssb(frequency, ratio, r)
 * 
 * cpdef cython.double erssb(Erssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude e^(-kr).
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_179erssb, 0, __pyx_n_s_erssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__350);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_erssb, __pyx_t_2) < 0) __PYX_ERR(0, 1749, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1760
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_erssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an erssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_181is_erssb, 0, __pyx_n_s_is_erssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1760, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_erssb, __pyx_t_2) < 0) __PYX_ERR(0, 1760, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1787
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += self.frequency + fm
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__352)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__353);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2cos);

  /* "pysndlib/generators.pyx":1795
 *         return self.next(fm)
 * 
 * cpdef R2cos make_r2cos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2sin generator that produces many even-numbered
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_183make_r2cos, 0, __pyx_n_s_make_r2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1795, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__357);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_r2cos, __pyx_t_2) < 0) __PYX_ERR(0, 1795, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1802
 *     return R2cos(frequency, r)
 * 
 * cpdef cython.double r2cos(R2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sines from frequency with amplitude r^(2k)/(2k)!.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_185r2cos, 0, __pyx_n_s_r2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__358)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__359);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_r2cos, __pyx_t_2) < 0) __PYX_ERR(0, 1802, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1814
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_187is_r2cos, 0, __pyx_n_s_is_r2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__360)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_r2cos, __pyx_t_2) < 0) __PYX_ERR(0, 1814, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1832
 *         self.r = r
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2ssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2ssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__362);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2ssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2ssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2ssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2ssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__363)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2ssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2ssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2ssb, (type(self), 0x922d628, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2ssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5R2ssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2ssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2ssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2ssb);

  /* "pysndlib/generators.pyx":1845
 *         return self.next(fm)
 * 
 * cpdef R2ssb make_r2ssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2ssb generator that produces many even-numbered sinusoids
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_189make_r2ssb, 0, __pyx_n_s_make_r2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__365)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__366);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_r2ssb, __pyx_t_2) < 0) __PYX_ERR(0, 1845, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1852
 *     return R2ssb(frequency, ratio, r)
 * 
 * cpdef cython.double r2ssb(R2ssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many even-numbered sinusoids from frequency spaced by frequency * ratio, if that makes any sense, with amplitude r^(2k)/(2k)!.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_191r2ssb, 0, __pyx_n_s_r2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1852, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__368);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_r2ssb, __pyx_t_2) < 0) __PYX_ERR(0, 1852, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1862
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2ssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_193is_r2ssb, 0, __pyx_n_s_is_r2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_r2ssb, __pyx_t_2) < 0) __PYX_ERR(0, 1862, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1882
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double sinha = sinh(self.r)
 *         if clm.is_zero(sinha):
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Eoddcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Eoddcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__370)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__371);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Eoddcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1882, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Eoddcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Eoddcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Eoddcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Eoddcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Eoddcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Eoddcos, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Eoddcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Eoddcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Eoddcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Eoddcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Eoddcos);

  /* "pysndlib/generators.pyx":1909
 * 
 * 
 * cpdef Eoddcos make_eoddcos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an eoddcos generator that produces many cosines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_195make_eoddcos, 0, __pyx_n_s_make_eoddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__375);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_eoddcos, __pyx_t_2) < 0) __PYX_ERR(0, 1909, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1916
 *     return Eoddcos(frequency, r)
 * 
 * cpdef cython.double eoddcos(Eoddcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude e^(-r).
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_197eoddcos, 0, __pyx_n_s_eoddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__377);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_eoddcos, __pyx_t_2) < 0) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1926
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_eoddcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an eoddcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_199is_eoddcos, 0, __pyx_n_s_is_eoddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__378)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_eoddcos, __pyx_t_2) < 0) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1948
 *         self.norm = log(1.0 - fabs(self.r))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cs = clm.oscil(self.osc, fm)
 *         return (.5 * log(1.0 + (-2.0 * self.r * cs) + (self.r*self.r))) / self.norm
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__380);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkcos, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkcos);

  /* "pysndlib/generators.pyx":1980
 * 
 * 
 * cpdef Rkcos make_rkcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkcos generator that produces many cosines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_201make_rkcos, 0, __pyx_n_s_make_rkcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__384);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rkcos, __pyx_t_2) < 0) __PYX_ERR(0, 1980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1987
 *     return Rkcos(frequency, r)
 * 
 * cpdef cython.double rkcos(Rkcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_203rkcos, 0, __pyx_n_s_rkcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__386);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rkcos, __pyx_t_2) < 0) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":1997
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_205is_rkcos, 0, __pyx_n_s_is_rkcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rkcos, __pyx_t_2) < 0) __PYX_ERR(0, 1997, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2015
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rksin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rksin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__388)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__389);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rksin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2015, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rksin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rksin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rksin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rksin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rksin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rksin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rksin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rksin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rksin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rksin);

  /* "pysndlib/generators.pyx":2032
 * 
 * 
 * cpdef Rksin make_rksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rksin generator that produces many sines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_207make_rksin, 0, __pyx_n_s_make_rksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2032, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__393);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rksin, __pyx_t_2) < 0) __PYX_ERR(0, 2032, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2038
 *     return Rksin(frequency, r)
 * 
 * cpdef cython.double rksin(Rksin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from spaced by frequency with amplitude (r^k)/k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_209rksin, 0, __pyx_n_s_rksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__395);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rksin, __pyx_t_2) < 0) __PYX_ERR(0, 2038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2049
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rksin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_211is_rksin, 0, __pyx_n_s_is_rksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rksin, __pyx_t_2) < 0) __PYX_ERR(0, 2049, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2070
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double angle1 = self.angle
 *         cdef cython.double angle2 = angle1 * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__398);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__399)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkssb, (type(self), 0x3aacba9, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Rkssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkssb);

  /* "pysndlib/generators.pyx":2093
 * 
 * 
 * cpdef Rkssb make_rkssb(frequency, ratio=1,r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkssb generator that produces many sinusoids from
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_213make_rkssb, 0, __pyx_n_s_make_rkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__401)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__402);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rkssb, __pyx_t_2) < 0) __PYX_ERR(0, 2093, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2100
 *     return Rkssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkssb(Rkssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency from spaced by frequency * ratio with amplitude (r^k)/k.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_215rkssb, 0, __pyx_n_s_rkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__403)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__404);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rkssb, __pyx_t_2) < 0) __PYX_ERR(0, 2100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2111
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_217is_rkssb, 0, __pyx_n_s_is_rkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__405)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rkssb, __pyx_t_2) < 0) __PYX_ERR(0, 2111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2130
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__407);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2130, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfcos, (type(self), 0x67c3143, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__409)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfcos);

  /* "pysndlib/generators.pyx":2155
 *         self.norm = 1.0 / (exp(fabs(self.r)) - 1.0 )
 * 
 * cpdef Rkfcos make_rkfcos(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfcos (rkf!os) generator that produces many
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_219make_rkfcos, 0, __pyx_n_s_make_rkfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2155, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__411);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rkfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2155, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2162
 *     return Rkfcos(frequency, r)
 * 
 * cpdef cython.double rkfcos(Rkfcos gen, cython.double fm = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (r^k)/k!.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_221rkfcos, 0, __pyx_n_s_rkfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__412)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__413);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rkfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2162, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2173
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_223is_rkfcos, 0, __pyx_n_s_is_rkfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__414)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rkfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2197
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__415)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__416);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2197, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__417)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkfssb, (type(self), 0x8089149, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkfssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Rkfssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkfssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkfssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkfssb);

  /* "pysndlib/generators.pyx":2219
 * 
 * 
 * cpdef Rkfssb make_rkfssb(frequency=0, ratio=1.0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkfssb (rk!ssb) generator that produces many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_225make_rkfssb, 0, __pyx_n_s_make_rkfssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2219, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__420);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rkfssb, __pyx_t_2) < 0) __PYX_ERR(0, 2219, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2225
 *     return Rkfssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkfssb(Rkfssb gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude (r^k)/k!.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_227rkfssb, 0, __pyx_n_s_rkfssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__422);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rkfssb, __pyx_t_2) < 0) __PYX_ERR(0, 2225, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2235
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkfssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkfssb
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_229is_rkfssb, 0, __pyx_n_s_is_rkfssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rkfssb, __pyx_t_2) < 0) __PYX_ERR(0, 2235, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2264
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return (clm.polywave(self.osc, fm)**self.k) * self.norm
 * 
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2kfcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2kfcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2264, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__425);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2kfcos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2264, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2kfcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2kfcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2kfcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__426)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2kfcos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2kfcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2kfcos, (type(self), 0x8d67433, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2kfcos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2kfcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2kfcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2kfcos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2kfcos);

  /* "pysndlib/generators.pyx":2287
 * 
 * 
 * cpdef R2kfcos make_r2kfcos(frequency=0, r=.5, k=.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2kfcos (r2k!cos) generator that produces many cosines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_231make_r2kfcos, 0, __pyx_n_s_make_r2kfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__430);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_r2kfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2294
 *     return R2kfcos(frequency, r, k)
 * 
 * cpdef cython.double r2kfcos(R2kfcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude too messy to write down.
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_233r2kfcos, 0, __pyx_n_s_r2kfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__431)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__432);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_r2kfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2304
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2kfcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2kfcos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_235is_r2kfcos, 0, __pyx_n_s_is_r2kfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__433)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_r2kfcos, __pyx_t_2) < 0) __PYX_ERR(0, 2304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2326
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2sin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2sin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__434)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__435);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2sin, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2sin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2sin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2sin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__436)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2sin, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2sin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2sin, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2sin__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2sin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2sin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__437)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2sin, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2sin);

  /* "pysndlib/generators.pyx":2334
 *         return self.next(fm)
 * 
 * cpdef K2sin make_k2sin(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a k2sin generator that produces many sines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_237make_k2sin, 0, __pyx_n_s_make_k2sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__439)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__440);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_k2sin, __pyx_t_2) < 0) __PYX_ERR(0, 2334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2341
 *     return K2sin(frequency)
 * 
 * cpdef cython.double k2sin(K2sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude 1/(2^k).
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_239k2sin, 0, __pyx_n_s_k2sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__441)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__442);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_k2sin, __pyx_t_2) < 0) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2351
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2sin
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_241is_k2sin, 0, __pyx_n_s_is_k2sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__443)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2351, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_k2sin, __pyx_t_2) < 0) __PYX_ERR(0, 2351, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2371
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__444)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__445);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2cos, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__446)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2cos, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2cos, (type(self), 0x2248a15, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2cos__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__447)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2cos, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2cos);

  /* "pysndlib/generators.pyx":2379
 *         return self.next(fm)
 * 
 * cpdef K2cos make_k2cos(frequency=0):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2cos generator that produces many cosines
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_243make_k2cos, 0, __pyx_n_s_make_k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__448)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__440);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_k2cos, __pyx_t_2) < 0) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2386
 *     return K2cos(frequency)
 * 
 * cpdef cython.double k2cos(K2cos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(2^k).
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_245k2cos, 0, __pyx_n_s_k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__449)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__450);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_k2cos, __pyx_t_2) < 0) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2396
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2cos
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_247is_k2cos, 0, __pyx_n_s_is_k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__451)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2396, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_k2cos, __pyx_t_2) < 0) __PYX_ERR(0, 2396, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2413
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         cdef cython.double cx  = self.angle
 *         cdef cython.double mx  = cx * self.ratio
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2ssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2ssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__453);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2ssb, __pyx_n_s_next, __pyx_t_2) < 0) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2ssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2ssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2ssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__454)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2ssb, __pyx_n_s_reduce_cython, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2ssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K2ssb, (type(self), 0xac5d142, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K2ssb__set_state(self, __pyx_state)
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K2ssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K2ssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__455)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K2ssb, __pyx_n_s_setstate_cython, __pyx_t_2) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K2ssb);

  /* "pysndlib/generators.pyx":2424
 * 
 * 
 * cpdef K2ssb make_k2ssb(frequency=0, ratio=1.):             # <<<<<<<<<<<<<<
 *     """
 *      creates a k2ssb generator that produces many sinusoids from
 */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_249make_k2ssb, 0, __pyx_n_s_make_k2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__457)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2424, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__458);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_k2ssb, __pyx_t_2) < 0) __PYX_ERR(0, 2424, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "pysndlib/generators.pyx":2431
 *     return K2ssb(frequency, ratio)
 * 
 * cpdef cython.double k2ssb(gen: K2ssb, fm: cython.double = 0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * ratio with amplitude 1/(2^k).
 */
  __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_gen, __pyx_n_s_K2ssb) < 0) __PYX_ERR(0, 2431, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_fm, __pyx_kp_s_cython_double) < 0) __PYX_ERR(0, 2431, __pyx_L1_error)
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_251k2ssb, 0, __pyx_n_s_k2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__459)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__460);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_3, __pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_k2ssb, __pyx_t_3) < 0) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2441
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k2ssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k2ssb
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_253is_k2ssb, 0, __pyx_n_s_is_k2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_k2ssb, __pyx_t_3) < 0) __PYX_ERR(0, 2441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2460
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Dblsum_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Dblsum_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2460, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__463);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Dblsum, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2460, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Dblsum);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Dblsum_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Dblsum___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Dblsum, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Dblsum);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Dblsum, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Dblsum__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Dblsum_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Dblsum___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__465)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Dblsum, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Dblsum);

  /* "pysndlib/generators.pyx":2478
 *         self.frequency = clm.hz2radians(2*val)
 * 
 * cpdef Dblsum make_dblsum(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *      creates a dblsum generator that produces many sines from frequency
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_255make_dblsum, 0, __pyx_n_s_make_dblsum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__467);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_dblsum, __pyx_t_3) < 0) __PYX_ERR(0, 2478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2485
 *     return Dblsum(frequency, r)
 * 
 * cpdef cython.double dblsum(Dblsum gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines from frequency spaced by frequency * (2k -1) with amplitude r^k (this is buggy)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_257dblsum, 0, __pyx_n_s_dblsum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__468)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__469);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_dblsum, __pyx_t_3) < 0) __PYX_ERR(0, 2485, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2495
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_dblsum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an dblsum
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_259is_dblsum, 0, __pyx_n_s_is_dblsum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__470)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_dblsum, __pyx_t_3) < 0) __PYX_ERR(0, 2495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2517
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cx: cython.double = self.angle
 *         mx: cython.double = cx * self.ratio
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Rkoddssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkoddssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__471)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__472);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkoddssb, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkoddssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Rkoddssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkoddssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__473)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkoddssb, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkoddssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Rkoddssb, (type(self), 0x64e2c41, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Rkoddssb__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Rkoddssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Rkoddssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__474)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Rkoddssb, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Rkoddssb);

  /* "pysndlib/generators.pyx":2539
 *         self.norm = 1.0 / (log(1.0 + self.r) - log(1.0 - self.r))
 * 
 * cpdef Rkoddssb make_rkoddssb(frequency=0, ratio=1., r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an rkoddssb generator that produces many sinusoids from
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_261make_rkoddssb, 0, __pyx_n_s_make_rkoddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__475)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2539, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__476);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_rkoddssb, __pyx_t_3) < 0) __PYX_ERR(0, 2539, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2546
 *     return Rkoddssb(frequency, ratio, r)
 * 
 * cpdef cython.double rkoddssb(Rkoddssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sinusoids from frequency spaced by frequency * 2 * ratio with amplitude (r^(2k-1))/(2k-1).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_263rkoddssb, 0, __pyx_n_s_rkoddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__478);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rkoddssb, __pyx_t_3) < 0) __PYX_ERR(0, 2546, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2556
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_rkoddssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an rkoddssb
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_265is_rkoddssb, 0, __pyx_n_s_is_rkoddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_rkoddssb, __pyx_t_3) < 0) __PYX_ERR(0, 2556, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2573
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double r1 = 1.0 - self.r
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Krksin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Krksin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__480)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__481);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Krksin, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2573, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Krksin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Krksin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Krksin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__482)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Krksin, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Krksin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Krksin, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Krksin__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_6Krksin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Krksin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Krksin, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Krksin);

  /* "pysndlib/generators.pyx":2584
 *         return self.next(fm)
 * 
 * cpdef Krksin make_krksin(frequency=0, r=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a krksin generator that produces many sines spaced by frequency with amplitude kr^k.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_267make_krksin, 0, __pyx_n_s_make_krksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__485);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_krksin, __pyx_t_3) < 0) __PYX_ERR(0, 2584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2590
 *     return Krksin(frequency, r)
 * 
 * cpdef cython.double krksin(Krksin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many sines spaced by frequency with amplitude kr^k.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_269krksin, 0, __pyx_n_s_krksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__486)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__487);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_krksin, __pyx_t_3) < 0) __PYX_ERR(0, 2590, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2601
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_krksin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an krksin
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_271is_krksin, 0, __pyx_n_s_is_krksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__488)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2601, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_krksin, __pyx_t_3) < 0) __PYX_ERR(0, 2601, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2619
 *         self.osc = clm.make_oscil(self.frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return (fabs(clm.oscil(self.osc, fm)) - (2.0 / PI)) / (2.0 / PI)
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Absin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Absin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__490);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Absin, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Absin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Absin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Absin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__491)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Absin, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Absin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Absin, (type(self), 0x4e7cbdb, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Absin__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Absin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Absin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__492)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Absin, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Absin);

  /* "pysndlib/generators.pyx":2644
 * 
 * 
 * cpdef Absin make_absin(frequency=0):             # <<<<<<<<<<<<<<
 *     """creates an absin generator (abs oscil)."""
 *     return Absin(frequency)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_273make_absin, 0, __pyx_n_s_make_absin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__493)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__440);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_absin, __pyx_t_3) < 0) __PYX_ERR(0, 2644, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2648
 *     return Absin(frequency)
 * 
 * cpdef cython.double absin(Absin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """(abs oscil)
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_275absin, 0, __pyx_n_s_absin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2648, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__495);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_absin, __pyx_t_3) < 0) __PYX_ERR(0, 2648, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2657
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_absin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an absin
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_277is_absin, 0, __pyx_n_s_is_absin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__496)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_absin, __pyx_t_3) < 0) __PYX_ERR(0, 2657, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2678
 *         self.norm = .5 / ((1.0 - (fabs(self.ab - self.a) / self.b)) - 1.0)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle += fm + self.frequency
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Abcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Abcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__497)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__498);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Abcos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Abcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Abcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Abcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Abcos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Abcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Abcos, (type(self), 0x2f2ef53, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Abcos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Abcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Abcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__500)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Abcos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Abcos);

  /* "pysndlib/generators.pyx":2686
 *         return self.next(fm)
 * 
 * cpdef Abcos make_abcos(frequency=0, a=.5, b=.25):             # <<<<<<<<<<<<<<
 *     """
 *     creates an abcos generator that produces many cosines spaced
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_279make_abcos, 0, __pyx_n_s_make_abcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2686, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__503);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_abcos, __pyx_t_3) < 0) __PYX_ERR(0, 2686, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2693
 *     return Abcos(frequency, a, b)
 * 
 * cpdef cython.double abcos(Abcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude (-a+sqrt(a^2-b^2))^k/b^k.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_281abcos, 0, __pyx_n_s_abcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__504)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2693, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__505);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_abcos, __pyx_t_3) < 0) __PYX_ERR(0, 2693, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2703
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_abcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an abcos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_283is_abcos, 0, __pyx_n_s_is_abcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__506)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_abcos, __pyx_t_3) < 0) __PYX_ERR(0, 2703, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2724
 *        return ((PI * cosh(PI * a)) / (2 * a * sinh(PI*a))) - (1.0 / (2 * a * a))
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if x > TWO_PI:
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2k2cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2k2cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__507)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2724, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__508);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2k2cos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2724, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2k2cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2k2cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2k2cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__509)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2k2cos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2k2cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_R2k2cos, (type(self), 0x9e5ff46, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_R2k2cos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7R2k2cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_R2k2cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__510)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_R2k2cos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_R2k2cos);

  /* "pysndlib/generators.pyx":2734
 *         return self.next(fm)
 * 
 * cpdef R2k2cos make_r2k2cos(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an r2k2cos generator that produces many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_285make_r2k2cos, 0, __pyx_n_s_make_r2k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__511)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__512);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_r2k2cos, __pyx_t_3) < 0) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2740
 *     return R2k2cos(frequency, r)
 * 
 * cpdef cython.double r2k2cos(R2k2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns many cosines spaced by frequency with amplitude 1/(r^2+k^2).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_287r2k2cos, 0, __pyx_n_s_r2k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__513)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__514);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_r2k2cos, __pyx_t_3) < 0) __PYX_ERR(0, 2740, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2751
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_r2k2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an r2k2cos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_289is_r2k2cos, 0, __pyx_n_s_is_r2k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__515)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_r2k2cos, __pyx_t_3) < 0) __PYX_ERR(0, 2751, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2773
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = self.r
 *         cdef cython.double N = self.n
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Blsaw_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blsaw_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__516)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__517);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blsaw, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blsaw);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Blsaw_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blsaw___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__518)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blsaw, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blsaw);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blsaw, (type(self), 0x4fda3b0, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blsaw__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Blsaw_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blsaw___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__519)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blsaw, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blsaw);

  /* "pysndlib/generators.pyx":2793
 *         return self.next(fm)
 * 
 * cpdef Blsaw make_blsaw(frequency=0, n=1, r=.5):             # <<<<<<<<<<<<<<
 *     """ creates a blsaw generator that produces a band-limited sawtooth wave."""
 *     return Blsaw(frequency, r, n)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_291make_blsaw, 0, __pyx_n_s_make_blsaw, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__520)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__521);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_blsaw, __pyx_t_3) < 0) __PYX_ERR(0, 2793, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2797
 *     return Blsaw(frequency, r, n)
 * 
 * cpdef cython.double blsaw(Blsaw gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a band-limited sawtooth wave.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_293blsaw, 0, __pyx_n_s_blsaw, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__522)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2797, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__523);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_blsaw, __pyx_t_3) < 0) __PYX_ERR(0, 2797, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2807
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blsaw(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blsaw
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_295is_blsaw, 0, __pyx_n_s_is_blsaw, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__524)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_blsaw, __pyx_t_3) < 0) __PYX_ERR(0, 2807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2829
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double one = -1.0 if self.r > 1.0 or (-1.0 < self.r < 0.0) else 1.0
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Asyfm_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Asyfm_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__525)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__526);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Asyfm);

  /* "pysndlib/generators.pyx":2837
 *         return result
 * 
 *     cpdef cython.double next_i(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         self.next(fm)
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Asyfm_5next_i, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Asyfm_next_i, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__527)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__528);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_n_s_next_i, __pyx_t_3) < 0) __PYX_ERR(0, 2837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Asyfm);

  /* "pysndlib/generators.pyx":2840
 *         self.next(fm)
 * 
 *     cpdef cython.double next_j(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double r1 = 1 / self.r
 *         cdef cython.double modphase = self.ratio * self.angle
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Asyfm_7next_j, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Asyfm_next_j, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__529)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__530);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_n_s_next_j, __pyx_t_3) < 0) __PYX_ERR(0, 2840, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Asyfm);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Asyfm_11__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Asyfm___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__531)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Asyfm);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Asyfm, (type(self), 0x0420b48, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Asyfm__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Asyfm_13__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Asyfm___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__532)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Asyfm, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Asyfm);

  /* "pysndlib/generators.pyx":2851
 *         return self.next(fm)
 * 
 * cpdef Asyfm make_asyfm(frequency=0, ratio=1., r=1., index=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     create an asymmetric fm gens. can produce same as asymmetric-fm generator or can use is the I0 case set r != 1.0 to get the asymmetric spectra
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_297make_asyfm, 0, __pyx_n_s_make_asyfm, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__534)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__535);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_asyfm, __pyx_t_3) < 0) __PYX_ERR(0, 2851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2857
 *     return Asyfm(frequency, ratio, r, index)
 * 
 * cpdef cython.double asyfm(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     same as asyfum_i. the I0 case of the asymmetric-fm generator
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_299asyfm, 0, __pyx_n_s_asyfm, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__536)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2857, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__537);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyfm, __pyx_t_3) < 0) __PYX_ERR(0, 2857, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2868
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_i(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     the I0 case of the asymmetric-fm generator
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_301asyfm_i, 0, __pyx_n_s_asyfm_i, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__538)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__539);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyfm_i, __pyx_t_3) < 0) __PYX_ERR(0, 2868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2878
 *     return gen.next(fm)
 * 
 * cpdef cython.double asyfm_j(Asyfm gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     is the same as the CLM asymmetric-fm generator
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_303asyfm_j, 0, __pyx_n_s_asyfm_j, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__540)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__541);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asyfm_j, __pyx_t_3) < 0) __PYX_ERR(0, 2878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2888
 *     return gen.next_j(fm)
 * 
 * cpdef cython.bint is_asyfm(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an asyfm
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_305is_asyfm, 0, __pyx_n_s_is_asyfm, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__542)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_asyfm, __pyx_t_3) < 0) __PYX_ERR(0, 2888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2900
 * # --------------- bess ---------------- #
 * cdef class Bess(CLMGenerator):
 *     bessel_peaks = [1.000,0.582,0.487,0.435,0.400,0.375,0.355,0.338,0.325,0.313,0.303,0.294,0.286,0.279,0.273,0.267,0.262,0.257,0.252,0.248]             # <<<<<<<<<<<<<<
 * 
 *     def __init__(self, frequency, n=0):
 */
  __pyx_t_3 = PyList_New(20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2900, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_1_000);
  __Pyx_GIVEREF(__pyx_float_1_000);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_1_000)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_582);
  __Pyx_GIVEREF(__pyx_float_0_582);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_0_582)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_487);
  __Pyx_GIVEREF(__pyx_float_0_487);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_0_487)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_435);
  __Pyx_GIVEREF(__pyx_float_0_435);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 3, __pyx_float_0_435)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_400);
  __Pyx_GIVEREF(__pyx_float_0_400);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 4, __pyx_float_0_400)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_375);
  __Pyx_GIVEREF(__pyx_float_0_375);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 5, __pyx_float_0_375)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_355);
  __Pyx_GIVEREF(__pyx_float_0_355);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 6, __pyx_float_0_355)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_338);
  __Pyx_GIVEREF(__pyx_float_0_338);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 7, __pyx_float_0_338)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_325);
  __Pyx_GIVEREF(__pyx_float_0_325);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 8, __pyx_float_0_325)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_313);
  __Pyx_GIVEREF(__pyx_float_0_313);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 9, __pyx_float_0_313)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_303);
  __Pyx_GIVEREF(__pyx_float_0_303);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 10, __pyx_float_0_303)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_294);
  __Pyx_GIVEREF(__pyx_float_0_294);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 11, __pyx_float_0_294)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_286);
  __Pyx_GIVEREF(__pyx_float_0_286);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 12, __pyx_float_0_286)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_279);
  __Pyx_GIVEREF(__pyx_float_0_279);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 13, __pyx_float_0_279)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_273);
  __Pyx_GIVEREF(__pyx_float_0_273);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 14, __pyx_float_0_273)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_267);
  __Pyx_GIVEREF(__pyx_float_0_267);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 15, __pyx_float_0_267)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_262);
  __Pyx_GIVEREF(__pyx_float_0_262);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 16, __pyx_float_0_262)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_257);
  __Pyx_GIVEREF(__pyx_float_0_257);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 17, __pyx_float_0_257)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_252);
  __Pyx_GIVEREF(__pyx_float_0_252);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 18, __pyx_float_0_252)) __PYX_ERR(0, 2900, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_248);
  __Pyx_GIVEREF(__pyx_float_0_248);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 19, __pyx_float_0_248)) __PYX_ERR(0, 2900, __pyx_L1_error);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess, __pyx_n_s_bessel_peaks, __pyx_t_3) < 0) __PYX_ERR(0, 2900, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Bess);

  /* "pysndlib/generators.pyx":2912
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double result = clm.bes_jn(self.n, self.angle) / self.norm
 *         self.angle += self.frequency + fm
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Bess_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Bess_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__543)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__544);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2912, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Bess);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Bess_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Bess___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__545)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Bess);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Bess, (type(self), 0x3deb623, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Bess__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Bess_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Bess___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__546)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Bess, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Bess);

  /* "pysndlib/generators.pyx":2920
 *         return self.next(fm)
 * 
 * cpdef Bess make_bess(frequency=0, n=0):             # <<<<<<<<<<<<<<
 *     """creates a bessel function (Jn) generator"""
 *     return Bess(frequency, n)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_307make_bess, 0, __pyx_n_s_make_bess, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__547)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__548);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_bess, __pyx_t_3) < 0) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2924
 *     return Bess(frequency, n)
 * 
 * cpdef cython.double bess(Bess gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns Jn
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_309bess, 0, __pyx_n_s_bess, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__549)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__550);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_bess, __pyx_t_3) < 0) __PYX_ERR(0, 2924, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2935
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_bess(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an bess
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_311is_bess, 0, __pyx_n_s_is_bess, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__551)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_bess, __pyx_t_3) < 0) __PYX_ERR(0, 2935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2956
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double dc = clm.bes_j0(self.k*self.a) * clm.bes_j0(self.k*self.r)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jjcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jjcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__552)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__553);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jjcos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 2956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jjcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jjcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jjcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__554)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jjcos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jjcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jjcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jjcos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jjcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jjcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__555)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jjcos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jjcos);

  /* "pysndlib/generators.pyx":2967
 *         return self.next(fm)
 * 
 * cpdef Jjcos make_jjcos(frequency=0, r=.5, a=1., k=1.):             # <<<<<<<<<<<<<<
 *     """creates a jjcos generator that produces a sum of cosines scaled by a product of Bessel functions.
 *     """
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_313make_jjcos, 0, __pyx_n_s_make_jjcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__557)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__558);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_jjcos, __pyx_t_3) < 0) __PYX_ERR(0, 2967, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2972
 *     return Jjcos(frequency, r, a, k)
 * 
 * cpdef cython.double jjcos(Jjcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by a product of Bessel functions.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_315jjcos, 0, __pyx_n_s_jjcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__559)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__560);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jjcos, __pyx_t_3) < 0) __PYX_ERR(0, 2972, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":2982
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jjcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jjcos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_317is_jjcos, 0, __pyx_n_s_is_jjcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__561)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_jjcos, __pyx_t_3) < 0) __PYX_ERR(0, 2982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3002
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9J0evencos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0evencos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__562)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__563);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0evencos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3002, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0evencos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9J0evencos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0evencos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__564)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0evencos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0evencos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0evencos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0evencos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9J0evencos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0evencos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__565)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0evencos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0evencos);

  /* "pysndlib/generators.pyx":3015
 *         return self.next(fm)
 * 
 * cpdef J0evencos make_j0evencos(frequency=0,index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0evencos generator that produces a sum of cosines scaled Jk^2(index/2).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_319make_j0evencos, 0, __pyx_n_s_make_j0evencos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__567)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3015, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_j0evencos, __pyx_t_3) < 0) __PYX_ERR(0, 3015, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3021
 *     return J0evencos(frequency, index)
 * 
 * cpdef cython.double j0evencos(J0evencos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a sum of cosines scaled Jk^2(index/2).
 * 
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_321j0evencos, 0, __pyx_n_s_j0evencos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__568)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__569);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_j0evencos, __pyx_t_3) < 0) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3030
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0evencos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0evencos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_323is_j0evencos, 0, __pyx_n_s_is_j0evencos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__570)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3030, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_j0evencos, __pyx_t_3) < 0) __PYX_ERR(0, 3030, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3051
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double rsinx2  = 2.0 * self.r  * sin(0.5 * self.angle)
 *         self.angle += self.frequency + fm
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5J2cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J2cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__571)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__572);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J2cos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3051, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J2cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5J2cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J2cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__573)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J2cos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J2cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J2cos, (type(self), 0xb5f0547, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J2cos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5J2cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J2cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__574)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J2cos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J2cos);

  /* "pysndlib/generators.pyx":3061
 *         return self.next(fm)
 * 
 * cpdef J2cos make_j2cos(frequency=0, r=.5, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j2cos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_325make_j2cos, 0, __pyx_n_s_make_j2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__576)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__577);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_j2cos, __pyx_t_3) < 0) __PYX_ERR(0, 3061, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3067
 *     return J2cos(frequency, r, n)
 * 
 * cpdef cython.double j2cos(J2cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_327j2cos, 0, __pyx_n_s_j2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__578)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__579);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_j2cos, __pyx_t_3) < 0) __PYX_ERR(0, 3067, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3077
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j2cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j2cos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_329is_j2cos, 0, __pyx_n_s_is_j2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__580)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3077, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_j2cos, __pyx_t_3) < 0) __PYX_ERR(0, 3077, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3101
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = (self.r*self.r) + (self.a*self.a) + (self.a * -2. * self.r * cos(self.angle))
 *         self.angle += self.frequency + fm
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jpcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jpcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__581)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__582);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jpcos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jpcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jpcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jpcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__583)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jpcos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jpcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jpcos, (type(self), 0xb0042b8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jpcos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jpcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jpcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__584)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jpcos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jpcos);

  /* "pysndlib/generators.pyx":3112
 *         return self.next(fm)
 * 
 * cpdef Jpcos make_jpcos(frequency=0, r=.5, a=0.0, k=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jpcos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_331make_jpcos, 0, __pyx_n_s_make_jpcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__585)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__586);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_jpcos, __pyx_t_3) < 0) __PYX_ERR(0, 3112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3118
 *     return Jpcos(frequency, r, a, k)
 * 
 * cpdef cython.double jpcos(Jpcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_333jpcos, 0, __pyx_n_s_jpcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__587)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__588);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jpcos, __pyx_t_3) < 0) __PYX_ERR(0, 3118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3128
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jpcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jpcos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_335is_jpcos, 0, __pyx_n_s_is_jpcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__589)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_jpcos, __pyx_t_3) < 0) __PYX_ERR(0, 3128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3149
 *         self.ra = (self.a*self.a) + (self.r * self.r)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double arg = sqrt(self.ra + (self.a * -2. * self.r * cos(self.angle)))
 *         self.angle += self.frequency + fm
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jncos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jncos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__590)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3149, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__591);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jncos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3149, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jncos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jncos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jncos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__592)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jncos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jncos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jncos, (type(self), 0x8867b32, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jncos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jncos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jncos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__593)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jncos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jncos);

  /* "pysndlib/generators.pyx":3159
 *         return self.next(fm)
 * 
 * cpdef Jncos make_jncos(frequency=0,  r=.5, a=1.0, n=0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jncos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_337make_jncos, 0, __pyx_n_s_make_jncos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__595)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__596);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_jncos, __pyx_t_3) < 0) __PYX_ERR(0, 3159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3165
 *     return Jncos(frequency, r, a, n)
 * 
 * cpdef cython.double jncos(Jncos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_339jncos, 0, __pyx_n_s_jncos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__597)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__598);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jncos, __pyx_t_3) < 0) __PYX_ERR(0, 3165, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3175
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jncos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jncos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_341is_jncos, 0, __pyx_n_s_is_jncos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__599)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_jncos, __pyx_t_3) < 0) __PYX_ERR(0, 3175, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3194
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double j0 = clm.bes_j0(.5 * self.index)
 *         cdef cython.double dc = j0 * j0
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7J0j1cos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0j1cos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__600)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3194, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__601);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0j1cos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3194, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0j1cos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7J0j1cos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0j1cos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__602)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0j1cos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0j1cos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_J0j1cos, (type(self), 0xde3685f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_J0j1cos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7J0j1cos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_J0j1cos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__603)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_J0j1cos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_J0j1cos);

  /* "pysndlib/generators.pyx":3204
 *         return self.next(fm)
 * 
 * cpdef J0j1cos make_j0j1cos(frequency=0, index=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a j0j1cos generator that produces a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_343make_j0j1cos, 0, __pyx_n_s_make_j0j1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__604)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_j0j1cos, __pyx_t_3) < 0) __PYX_ERR(0, 3204, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3210
 *     return J0j1cos(frequency, index)
 * 
 * cpdef cython.double j0j1cos(J0j1cos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in a very complicated way.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_345j0j1cos, 0, __pyx_n_s_j0j1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__605)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__606);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_j0j1cos, __pyx_t_3) < 0) __PYX_ERR(0, 3210, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3220
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_j0j1cos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an j0j1cos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_347is_j0j1cos, 0, __pyx_n_s_is_j0j1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__607)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3220, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_j0j1cos, __pyx_t_3) < 0) __PYX_ERR(0, 3220, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3246
 *         self.angle = 0.0
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b2c2 = (self.r*self.r) + (self.a*self.a)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jycos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jycos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__608)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__609);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jycos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jycos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jycos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jycos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__610)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jycos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jycos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jycos, (type(self), 0x500e025, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jycos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Jycos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jycos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__611)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jycos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jycos);

  /* "pysndlib/generators.pyx":3259
 *         return self.next(fm)
 * 
 * cpdef Jycos make_jycos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jycos generator that produces a sum of cosines scaled by Yn(r)*Jn(r).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_349make_jycos, 0, __pyx_n_s_make_jycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__613)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__614);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_jycos, __pyx_t_3) < 0) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3265
 *     return Jycos(frequency, r,a)
 * 
 * cpdef cython.double jycos(Jycos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by Yn(r)*Jn(r).
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_351jycos, 0, __pyx_n_s_jycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__615)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__616);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jycos, __pyx_t_3) < 0) __PYX_ERR(0, 3265, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3275
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jycos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jycos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_353is_jycos, 0, __pyx_n_s_is_jycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__617)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_jycos, __pyx_t_3) < 0) __PYX_ERR(0, 3275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3294
 *         self.a = a
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double b = self.r
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Jcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__618)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__619);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jcos, __pyx_n_s_next, __pyx_t_3) < 0) __PYX_ERR(0, 3294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Jcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__620)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jcos, __pyx_n_s_reduce_cython, __pyx_t_3) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Jcos, (type(self), 0xb37ed78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Jcos__set_state(self, __pyx_state)
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_4Jcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Jcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__621)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Jcos, __pyx_n_s_setstate_cython, __pyx_t_3) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Jcos);

  /* "pysndlib/generators.pyx":3306
 *         return self.next(fm)
 * 
 * cpdef Jcos make_jcos(frequency=0, r=1.0, a=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates a jcos generator. (jcos gen (fm 0.0)) that produces a sum of cosines scaled in some complex manner.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_355make_jcos, 0, __pyx_n_s_make_jcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__622)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3306, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__623);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_jcos, __pyx_t_3) < 0) __PYX_ERR(0, 3306, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3312
 *     return Jcos(frequency, r,a)
 * 
 * cpdef cython.double jcos(Jcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled in some complex manner.
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_357jcos, 0, __pyx_n_s_jcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__624)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__625);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_jcos, __pyx_t_3) < 0) __PYX_ERR(0, 3312, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3322
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_jcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an jcos
 */
  __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_359is_jcos, 0, __pyx_n_s_is_jcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__626)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_jcos, __pyx_t_3) < 0) __PYX_ERR(0, 3322, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

  /* "pysndlib/generators.pyx":3334
 * 
 * cdef class Blackman(CLMGenerator):
 *     blackman_coeffs = [[0,0], [0,0.54,1,-0.46], [0,0.42323,1,-0.49755,2,0.078279],[0,0.35875,1,0.48829,2,0.14128,3,-0.01168],             # <<<<<<<<<<<<<<
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],
 */
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_int_0)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_int_0)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_54);
  __Pyx_GIVEREF(__pyx_float_0_54);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_float_0_54)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_1)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_0_46);
  __Pyx_GIVEREF(__pyx_float_neg_0_46);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_float_neg_0_46)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __pyx_t_5 = PyList_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 0, __pyx_int_0)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_42323);
  __Pyx_GIVEREF(__pyx_float_0_42323);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 1, __pyx_float_0_42323)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_1)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_0_49755);
  __Pyx_GIVEREF(__pyx_float_neg_0_49755);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 3, __pyx_float_neg_0_49755)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_2)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_078279);
  __Pyx_GIVEREF(__pyx_float_0_078279);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_5, 5, __pyx_float_0_078279)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __pyx_t_6 = PyList_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_int_0)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_35875);
  __Pyx_GIVEREF(__pyx_float_0_35875);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_0_35875)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 2, __pyx_int_1)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_48829);
  __Pyx_GIVEREF(__pyx_float_0_48829);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_0_48829)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 4, __pyx_int_2)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_14128);
  __Pyx_GIVEREF(__pyx_float_0_14128);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_0_14128)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 6, __pyx_int_3)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_0_01168);
  __Pyx_GIVEREF(__pyx_float_neg_0_01168);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 7, __pyx_float_neg_0_01168)) __PYX_ERR(0, 3334, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3335
 * cdef class Blackman(CLMGenerator):
 *     blackman_coeffs = [[0,0], [0,0.54,1,-0.46], [0,0.42323,1,-0.49755,2,0.078279],[0,0.35875,1,0.48829,2,0.14128,3,-0.01168],
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],             # <<<<<<<<<<<<<<
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],
 *                         [0,.2533176,1,-.4163269,2,.2288396,3,-.08157508,4,.017735924,5,-.0020967027,6,.00010677413,7,-.0000012807],
 */
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 0, __pyx_int_0)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_287333);
  __Pyx_GIVEREF(__pyx_float_0_287333);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_0_287333)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 2, __pyx_int_1)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_0_44716);
  __Pyx_GIVEREF(__pyx_float_neg_0_44716);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float_neg_0_44716)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 4, __pyx_int_2)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_20844);
  __Pyx_GIVEREF(__pyx_float_0_20844);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_0_20844)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 6, __pyx_int_3)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg_0_05190);
  __Pyx_GIVEREF(__pyx_float_neg_0_05190);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 7, __pyx_float_neg_0_05190)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 8, __pyx_int_4)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_0_005149);
  __Pyx_GIVEREF(__pyx_float_0_005149);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_7, 9, __pyx_float_0_005149)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __pyx_t_8 = PyList_New(12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3335, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 0, __pyx_int_0)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__293557);
  __Pyx_GIVEREF(__pyx_float__293557);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 1, __pyx_float__293557)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 2, __pyx_int_1)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__451935);
  __Pyx_GIVEREF(__pyx_float_neg__451935);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 3, __pyx_float_neg__451935)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 4, __pyx_int_2)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__201416);
  __Pyx_GIVEREF(__pyx_float__201416);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 5, __pyx_float__201416)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 6, __pyx_int_3)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__047926);
  __Pyx_GIVEREF(__pyx_float_neg__047926);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 7, __pyx_float_neg__047926)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 8, __pyx_int_4)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__00502619);
  __Pyx_GIVEREF(__pyx_float__00502619);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 9, __pyx_float__00502619)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 10, __pyx_int_5)) __PYX_ERR(0, 3335, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__000137555);
  __Pyx_GIVEREF(__pyx_float_neg__000137555);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_8, 11, __pyx_float_neg__000137555)) __PYX_ERR(0, 3335, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3336
 *     blackman_coeffs = [[0,0], [0,0.54,1,-0.46], [0,0.42323,1,-0.49755,2,0.078279],[0,0.35875,1,0.48829,2,0.14128,3,-0.01168],
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],             # <<<<<<<<<<<<<<
 *                         [0,.2533176,1,-.4163269,2,.2288396,3,-.08157508,4,.017735924,5,-.0020967027,6,.00010677413,7,-.0000012807],
 *                         [0,.2384331,1,-.4005545,2,.2358242,3,-.09527918,4,.025373955,5,-.0041524329,6,.00036856041,7,-.00001384355,8,.0000001161808],
 */
  __pyx_t_9 = PyList_New(14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3336, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 0, __pyx_int_0)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2712203);
  __Pyx_GIVEREF(__pyx_float__2712203);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 1, __pyx_float__2712203)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 2, __pyx_int_1)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__4334446);
  __Pyx_GIVEREF(__pyx_float_neg__4334446);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 3, __pyx_float_neg__4334446)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 4, __pyx_int_2)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2180041);
  __Pyx_GIVEREF(__pyx_float__2180041);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 5, __pyx_float__2180041)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 6, __pyx_int_3)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0657853);
  __Pyx_GIVEREF(__pyx_float_neg__0657853);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 7, __pyx_float_neg__0657853)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 8, __pyx_int_4)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__010761867);
  __Pyx_GIVEREF(__pyx_float__010761867);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 9, __pyx_float__010761867)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 10, __pyx_int_5)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0007700127);
  __Pyx_GIVEREF(__pyx_float_neg__0007700127);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 11, __pyx_float_neg__0007700127)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 12, __pyx_int_6)) __PYX_ERR(0, 3336, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__00001368088);
  __Pyx_GIVEREF(__pyx_float__00001368088);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_9, 13, __pyx_float__00001368088)) __PYX_ERR(0, 3336, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3337
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],
 *                         [0,.2533176,1,-.4163269,2,.2288396,3,-.08157508,4,.017735924,5,-.0020967027,6,.00010677413,7,-.0000012807],             # <<<<<<<<<<<<<<
 *                         [0,.2384331,1,-.4005545,2,.2358242,3,-.09527918,4,.025373955,5,-.0041524329,6,.00036856041,7,-.00001384355,8,.0000001161808],
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],
 */
  __pyx_t_10 = PyList_New(16); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 0, __pyx_int_0)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2533176);
  __Pyx_GIVEREF(__pyx_float__2533176);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 1, __pyx_float__2533176)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 2, __pyx_int_1)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__4163269);
  __Pyx_GIVEREF(__pyx_float_neg__4163269);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 3, __pyx_float_neg__4163269)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 4, __pyx_int_2)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2288396);
  __Pyx_GIVEREF(__pyx_float__2288396);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 5, __pyx_float__2288396)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 6, __pyx_int_3)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__08157508);
  __Pyx_GIVEREF(__pyx_float_neg__08157508);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 7, __pyx_float_neg__08157508)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 8, __pyx_int_4)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__017735924);
  __Pyx_GIVEREF(__pyx_float__017735924);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 9, __pyx_float__017735924)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 10, __pyx_int_5)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0020967027);
  __Pyx_GIVEREF(__pyx_float_neg__0020967027);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 11, __pyx_float_neg__0020967027)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 12, __pyx_int_6)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__00010677413);
  __Pyx_GIVEREF(__pyx_float__00010677413);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 13, __pyx_float__00010677413)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_7);
  __Pyx_GIVEREF(__pyx_int_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 14, __pyx_int_7)) __PYX_ERR(0, 3337, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0000012807);
  __Pyx_GIVEREF(__pyx_float_neg__0000012807);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_10, 15, __pyx_float_neg__0000012807)) __PYX_ERR(0, 3337, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3338
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],
 *                         [0,.2533176,1,-.4163269,2,.2288396,3,-.08157508,4,.017735924,5,-.0020967027,6,.00010677413,7,-.0000012807],
 *                         [0,.2384331,1,-.4005545,2,.2358242,3,-.09527918,4,.025373955,5,-.0041524329,6,.00036856041,7,-.00001384355,8,.0000001161808],             # <<<<<<<<<<<<<<
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]
 */
  __pyx_t_11 = PyList_New(18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3338, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 0, __pyx_int_0)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2384331);
  __Pyx_GIVEREF(__pyx_float__2384331);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 1, __pyx_float__2384331)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 2, __pyx_int_1)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__4005545);
  __Pyx_GIVEREF(__pyx_float_neg__4005545);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 3, __pyx_float_neg__4005545)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 4, __pyx_int_2)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2358242);
  __Pyx_GIVEREF(__pyx_float__2358242);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 5, __pyx_float__2358242)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 6, __pyx_int_3)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__09527918);
  __Pyx_GIVEREF(__pyx_float_neg__09527918);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 7, __pyx_float_neg__09527918)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 8, __pyx_int_4)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__025373955);
  __Pyx_GIVEREF(__pyx_float__025373955);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 9, __pyx_float__025373955)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 10, __pyx_int_5)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0041524329);
  __Pyx_GIVEREF(__pyx_float_neg__0041524329);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 11, __pyx_float_neg__0041524329)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 12, __pyx_int_6)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__00036856041);
  __Pyx_GIVEREF(__pyx_float__00036856041);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 13, __pyx_float__00036856041)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_7);
  __Pyx_GIVEREF(__pyx_int_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 14, __pyx_int_7)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__00001384355);
  __Pyx_GIVEREF(__pyx_float_neg__00001384355);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 15, __pyx_float_neg__00001384355)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_8);
  __Pyx_GIVEREF(__pyx_int_8);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 16, __pyx_int_8)) __PYX_ERR(0, 3338, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__0000001161808);
  __Pyx_GIVEREF(__pyx_float__0000001161808);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_11, 17, __pyx_float__0000001161808)) __PYX_ERR(0, 3338, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3339
 *                         [0,.2533176,1,-.4163269,2,.2288396,3,-.08157508,4,.017735924,5,-.0020967027,6,.00010677413,7,-.0000012807],
 *                         [0,.2384331,1,-.4005545,2,.2358242,3,-.09527918,4,.025373955,5,-.0041524329,6,.00036856041,7,-.00001384355,8,.0000001161808],
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],             # <<<<<<<<<<<<<<
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]
 *     def __init__(self, frequency, cython.int n=1):
 */
  __pyx_t_12 = PyList_New(20); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 0, __pyx_int_0)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2257345);
  __Pyx_GIVEREF(__pyx_float__2257345);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 1, __pyx_float__2257345)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 2, __pyx_int_1)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__3860122);
  __Pyx_GIVEREF(__pyx_float_neg__3860122);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 3, __pyx_float_neg__3860122)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 4, __pyx_int_2)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2401294);
  __Pyx_GIVEREF(__pyx_float__2401294);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 5, __pyx_float__2401294)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 6, __pyx_int_3)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__1070542);
  __Pyx_GIVEREF(__pyx_float_neg__1070542);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 7, __pyx_float_neg__1070542)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 8, __pyx_int_4)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__03325916);
  __Pyx_GIVEREF(__pyx_float__03325916);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 9, __pyx_float__03325916)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 10, __pyx_int_5)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__00687337);
  __Pyx_GIVEREF(__pyx_float_neg__00687337);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 11, __pyx_float_neg__00687337)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 12, __pyx_int_6)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__0008751673);
  __Pyx_GIVEREF(__pyx_float__0008751673);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 13, __pyx_float__0008751673)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_7);
  __Pyx_GIVEREF(__pyx_int_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 14, __pyx_int_7)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0000600859);
  __Pyx_GIVEREF(__pyx_float_neg__0000600859);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 15, __pyx_float_neg__0000600859)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_8);
  __Pyx_GIVEREF(__pyx_int_8);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 16, __pyx_int_8)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__000001710716);
  __Pyx_GIVEREF(__pyx_float__000001710716);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 17, __pyx_float__000001710716)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_9);
  __Pyx_GIVEREF(__pyx_int_9);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 18, __pyx_int_9)) __PYX_ERR(0, 3339, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__00000001027272);
  __Pyx_GIVEREF(__pyx_float_neg__00000001027272);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_12, 19, __pyx_float_neg__00000001027272)) __PYX_ERR(0, 3339, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3340
 *                         [0,.2384331,1,-.4005545,2,.2358242,3,-.09527918,4,.025373955,5,-.0041524329,6,.00036856041,7,-.00001384355,8,.0000001161808],
 *                         [0,.2257345,1,-.3860122,2,.2401294,3,-.1070542,4,.03325916,5,-.00687337,6,.0008751673,7,-.0000600859,8,.000001710716,9,-.00000001027272],
 *                         [0,.2151527,1,-.3731348,2,.2424243,3,-.1166907,4,.04077422,5,-.01000904,6,.0016398069,7,-.0001651660,8,.000008884663,9,-.000000193817,10,.00000000084824]]             # <<<<<<<<<<<<<<
 *     def __init__(self, frequency, cython.int n=1):
 *         self.frequency = frequency
 */
  __pyx_t_13 = PyList_New(22); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 0, __pyx_int_0)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2151527);
  __Pyx_GIVEREF(__pyx_float__2151527);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 1, __pyx_float__2151527)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_1);
  __Pyx_GIVEREF(__pyx_int_1);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 2, __pyx_int_1)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__3731348);
  __Pyx_GIVEREF(__pyx_float_neg__3731348);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 3, __pyx_float_neg__3731348)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_2);
  __Pyx_GIVEREF(__pyx_int_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 4, __pyx_int_2)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__2424243);
  __Pyx_GIVEREF(__pyx_float__2424243);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 5, __pyx_float__2424243)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_3);
  __Pyx_GIVEREF(__pyx_int_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 6, __pyx_int_3)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__1166907);
  __Pyx_GIVEREF(__pyx_float_neg__1166907);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 7, __pyx_float_neg__1166907)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_4);
  __Pyx_GIVEREF(__pyx_int_4);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 8, __pyx_int_4)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__04077422);
  __Pyx_GIVEREF(__pyx_float__04077422);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 9, __pyx_float__04077422)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_5);
  __Pyx_GIVEREF(__pyx_int_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 10, __pyx_int_5)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__01000904);
  __Pyx_GIVEREF(__pyx_float_neg__01000904);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 11, __pyx_float_neg__01000904)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_6);
  __Pyx_GIVEREF(__pyx_int_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 12, __pyx_int_6)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__0016398069);
  __Pyx_GIVEREF(__pyx_float__0016398069);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 13, __pyx_float__0016398069)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_7);
  __Pyx_GIVEREF(__pyx_int_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 14, __pyx_int_7)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__0001651660);
  __Pyx_GIVEREF(__pyx_float_neg__0001651660);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 15, __pyx_float_neg__0001651660)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_8);
  __Pyx_GIVEREF(__pyx_int_8);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 16, __pyx_int_8)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__000008884663);
  __Pyx_GIVEREF(__pyx_float__000008884663);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 17, __pyx_float__000008884663)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_9);
  __Pyx_GIVEREF(__pyx_int_9);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 18, __pyx_int_9)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_neg__000000193817);
  __Pyx_GIVEREF(__pyx_float_neg__000000193817);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 19, __pyx_float_neg__000000193817)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_int_10);
  __Pyx_GIVEREF(__pyx_int_10);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 20, __pyx_int_10)) __PYX_ERR(0, 3340, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float__00000000084824);
  __Pyx_GIVEREF(__pyx_float__00000000084824);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 21, __pyx_float__00000000084824)) __PYX_ERR(0, 3340, __pyx_L1_error);

  /* "pysndlib/generators.pyx":3334
 * 
 * cdef class Blackman(CLMGenerator):
 *     blackman_coeffs = [[0,0], [0,0.54,1,-0.46], [0,0.42323,1,-0.49755,2,0.078279],[0,0.35875,1,0.48829,2,0.14128,3,-0.01168],             # <<<<<<<<<<<<<<
 *                         [0,0.287333,1,-0.44716,2,0.20844,3,-0.05190,4,0.005149], [0,.293557,1,-.451935,2,.201416,3,-.047926,4,.00502619,5,-.000137555],
 *                         [0,.2712203,1,-.4334446,2,.2180041,3,-.0657853,4,.010761867,5,-.0007700127,6,.00001368088],
 */
  __pyx_t_14 = PyList_New(11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_3);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_2);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_5);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 2, __pyx_t_5)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_6);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 3, __pyx_t_6)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_7);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 4, __pyx_t_7)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_8);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 5, __pyx_t_8)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_9);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 6, __pyx_t_9)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_10);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 7, __pyx_t_10)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_11);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 8, __pyx_t_11)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_12);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 9, __pyx_t_12)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_13);
  if (__Pyx_PyList_SET_ITEM(__pyx_t_14, 10, __pyx_t_13)) __PYX_ERR(0, 3334, __pyx_L1_error);
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_n_s_blackman_coeffs, __pyx_t_14) < 0) __PYX_ERR(0, 3334, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blackman);

  /* "pysndlib/generators.pyx":3346
 *         self.osc = clm.make_polywave(self.frequency, Blackman.blackman_coeffs[self.n])
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return clm.polywave(self.osc, fm)
 * 
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Blackman_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blackman_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__627)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__628);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_n_s_next, __pyx_t_14) < 0) __PYX_ERR(0, 3346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blackman);

  /* "pysndlib/generators.pyx":3352
 *         return self.next(fm)
 * 
 *     cpdef mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Blackman_7mus_reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blackman_mus_reset, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__630)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3352, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_n_s_mus_reset, __pyx_t_14) < 0) __PYX_ERR(0, 3352, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blackman);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Blackman_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blackman___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__631)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_n_s_reduce_cython, __pyx_t_14) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blackman);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Blackman, (type(self), 0x604a374, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Blackman__set_state(self, __pyx_state)
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_8Blackman_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Blackman___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__632)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Blackman, __pyx_n_s_setstate_cython, __pyx_t_14) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Blackman);

  /* "pysndlib/generators.pyx":3356
 *         self.angle = 0.
 * 
 * cpdef Blackman make_blackman(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a blackman generator that produces the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)"""
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_361make_blackman, 0, __pyx_n_s_make_blackman, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__633)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_blackman, __pyx_t_14) < 0) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":3361
 *     return Blackman(frequency, n)
 * 
 * cpdef cython.double blackman(Blackman gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns the nth Blackman-Harris fft data window as a periodic waveform. (n <= 10)
 * 
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_363blackman, 0, __pyx_n_s_blackman, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__634)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__635);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_blackman, __pyx_t_14) < 0) __PYX_ERR(0, 3361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":3370
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_blackman(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an blackman
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_365is_blackman, 0, __pyx_n_s_is_blackman, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__636)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_blackman, __pyx_t_14) < 0) __PYX_ERR(0, 3370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":3391
 * 
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double cx = self.angle
 *         cdef cython.double mx = cx * self.ratio
 */
  __pyx_t_14 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_fm, __pyx_kp_s_cython_double) < 0) __PYX_ERR(0, 3391, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Fmssb_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Fmssb_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__637)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__638);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Fmssb, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3391, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Fmssb);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Fmssb_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Fmssb___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__639)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Fmssb, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Fmssb);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Fmssb, (type(self), 0x7621c8d, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Fmssb__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Fmssb_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Fmssb___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__640)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Fmssb, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Fmssb);

  /* "pysndlib/generators.pyx":3409
 * 
 * 
 * cpdef Fmssb make_fmssb(frequency=0, ratio=1.0, index=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an fmssb generator that produces single-sideband FM.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_367make_fmssb, 0, __pyx_n_s_make_fmssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__642)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3409, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__643);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_fmssb, __pyx_t_13) < 0) __PYX_ERR(0, 3409, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3415
 *     return Fmssb(frequency, ratio, index)
 * 
 * cpdef cython.double fmssb(Fmssb gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns single-sideband FM.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_369fmssb, 0, __pyx_n_s_fmssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__644)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__645);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fmssb, __pyx_t_13) < 0) __PYX_ERR(0, 3415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3426
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_fmssb(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an fmssb
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_371is_fmssb, 0, __pyx_n_s_is_fmssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__646)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_fmssb, __pyx_t_13) < 0) __PYX_ERR(0, 3426, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3444
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         if not 0.0 <= x <= TWO_PI:
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K3sin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K3sin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__647)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__648);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K3sin);

  /* "pysndlib/generators.pyx":3454
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K3sin_7mus_reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K3sin_mus_reset, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__649)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin, __pyx_n_s_mus_reset, __pyx_t_13) < 0) __PYX_ERR(0, 3454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K3sin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K3sin_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K3sin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__650)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K3sin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_K3sin, (type(self), 0x8ee932e, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_K3sin__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5K3sin_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_K3sin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__651)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_K3sin, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_K3sin);

  /* "pysndlib/generators.pyx":3459
 * 
 * 
 * cpdef K3sin make_k3sin(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """creates a k3sin generator that produces a sum of sines scaled by k^3."""
 *     return K3sin(frequency)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_373make_k3sin, 0, __pyx_n_s_make_k3sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__652)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3459, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_k3sin, __pyx_t_13) < 0) __PYX_ERR(0, 3459, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3463
 *     return K3sin(frequency)
 * 
 * cpdef cython.double k3sin(K3sin gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by k^3.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_375k3sin, 0, __pyx_n_s_k3sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__653)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3463, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__654);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_k3sin, __pyx_t_13) < 0) __PYX_ERR(0, 3463, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3473
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_k3sin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an k3sin
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_377is_k3sin, 0, __pyx_n_s_is_k3sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__655)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3473, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_k3sin, __pyx_t_13) < 0) __PYX_ERR(0, 3473, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3495
 *         self.inorm = 1.0 / self.norm
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         self.angle = x + fm + self.frequency
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Izcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Izcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__656)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__657);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Izcos);

  /* "pysndlib/generators.pyx":3505
 *         return self.next(fm)
 * 
 *     def mus_reset(self):             # <<<<<<<<<<<<<<
 *         self.frequency = 0.
 *         self.angle = 0.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Izcos_7mus_reset, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Izcos_mus_reset, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__658)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3505, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos, __pyx_n_s_mus_reset, __pyx_t_13) < 0) __PYX_ERR(0, 3505, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Izcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Izcos_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Izcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__659)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Izcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Izcos, (type(self), 0x3713f78, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Izcos__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_5Izcos_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Izcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__660)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Izcos, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Izcos);

  /* "pysndlib/generators.pyx":3520
 *         self.inorm = 1.0 / self.norm
 * 
 * cpdef Izcos make_izcos(frequency=0,r=1.):             # <<<<<<<<<<<<<<
 *     """
 *     creates an izcos generator that produces a sum of sines scaled by In(r).
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_379make_izcos, 0, __pyx_n_s_make_izcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__661)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__662);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_izcos, __pyx_t_13) < 0) __PYX_ERR(0, 3520, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3526
 *     return Izcos(frequency, r)
 * 
 * cpdef cython.double izcos(Izcos gen, cython.double fm =0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of sines scaled by In(r)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_381izcos, 0, __pyx_n_s_izcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__663)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__664);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_izcos, __pyx_t_13) < 0) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3535
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_izcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an izcos
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_383is_izcos, 0, __pyx_n_s_is_izcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__665)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_izcos, __pyx_t_13) < 0) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3558
 *         self.p2 = clm.make_pulse_train(self.frequency, -self.amplitude, (TWO_PI * (1.0 - self.duty_factor)))
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double a = clm.pulse_train(self.p1, fm)
 *         cdef cython.double b = clm.pulse_train(self.p2, fm)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSquareWave_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__666)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__667);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSquareWave___reduce_cy, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__668)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSquareWave, (type(self), 0x6fa01d2, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSquareWave__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_20AdjustableSquareWave_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSquareWave___setstate, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__669)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSquareWave);

  /* "pysndlib/generators.pyx":3594
 * 
 * 
 * cpdef AdjustableSquareWave make_adjustable_square_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-square-wave generator that produces square-wave
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_385make_adjustable_square_wave, 0, __pyx_n_s_make_adjustable_square_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__671)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__672);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_adjustable_square_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3600
 *     return AdjustableSquareWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_square_wave(AdjustableSquareWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a square-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_387adjustable_square_wave, 0, __pyx_n_s_adjustable_square_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__673)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3600, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__674);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_adjustable_square_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3600, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3611
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_square_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_square_wave
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_389is_adjustable_square_wave, 0, __pyx_n_s_is_adjustable_square_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__675)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_adjustable_square_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3611, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3636
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.triangle_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableTriangleWave_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__676)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__677);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableTriangleWave___reduce, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__678)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableTriangleWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableTriangleWave__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableTriangleWave_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableTriangleWave___setstat, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__679)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableTriangleWave);

  /* "pysndlib/generators.pyx":3670
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableTriangleWave make_adjustable_triangle_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-triangle-wave generator that produces a triangle-wave where the
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_391make_adjustable_triangle_wave, 0, __pyx_n_s_make_adjustable_triangle_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__680)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__681);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_adjustable_triangle_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3670, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3677
 *     return AdjustableTriangleWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_triangle_wave(AdjustableTriangleWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a triangle-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_393adjustable_triangle_wave, 0, __pyx_n_s_adjustable_triangle_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__682)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__683);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_adjustable_triangle_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3687
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_triangle_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_triangle_wave
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_395is_adjustable_triangle_wave, 0, __pyx_n_s_is_adjustable_triangle_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__684)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_adjustable_triangle_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3711
 *             self.scl = self.amplitude / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.sawtooth_wave(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSawtoothWave_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__685)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__686);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3711, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSawtoothWave___reduce, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__687)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableSawtoothWave, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableSawtoothWave__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_22AdjustableSawtoothWave_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableSawtoothWave___setstat, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__688)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableSawtoothWave);

  /* "pysndlib/generators.pyx":3746
 *             self.scl = self.amplitude / val
 * 
 * cpdef AdjustableSawtoothWave make_adjustable_sawtooth_wave(frequency=0, duty_factor=.5, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-sawtooth-wave generator that produces a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_397make_adjustable_sawtooth_wave, 0, __pyx_n_s_make_adjustable_sawtooth_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__689)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__690);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_adjustable_sawtooth_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3752
 *     return AdjustableSawtoothWave(frequency, duty_factor, amplitude)
 * 
 * cpdef cython.double adjustable_sawtooth_wave(AdjustableSawtoothWave gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sawtooth-wave where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_399adjustable_sawtooth_wave, 0, __pyx_n_s_adjustable_sawtooth_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__691)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3752, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__692);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_adjustable_sawtooth_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3752, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3762
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_sawtooth_wave(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_sawtooth_wave
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_401is_adjustable_sawtooth_wave, 0, __pyx_n_s_is_adjustable_sawtooth_wave, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__693)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_adjustable_sawtooth_wave, __pyx_t_13) < 0) __PYX_ERR(0, 3762, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3788
 *             self.scl = 1. / self.duty_factor
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         self.val = clm.oscil(self.gen, fm)
 *         return self.scl * (self.val - max(self.mtop, min(self.top, self.val)))
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15AdjustableOscil_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableOscil_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__694)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__695);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableOscil, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3788, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableOscil);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15AdjustableOscil_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableOscil___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__696)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableOscil, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableOscil);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_AdjustableOscil, (type(self), 0xeb255a5, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_AdjustableOscil__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_15AdjustableOscil_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_AdjustableOscil___setstate_cytho, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__697)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_AdjustableOscil, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_AdjustableOscil);

  /* "pysndlib/generators.pyx":3823
 *             self.scl = 1. / val
 * 
 * cpdef AdjustableOscil make_adjustable_oscil(frequency=0, duty_factor=.5):             # <<<<<<<<<<<<<<
 *     """
 *     creates an adjustable-oscil generator that produces a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_403make_adjustable_oscil, 0, __pyx_n_s_make_adjustable_oscil, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__699)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__700);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_adjustable_oscil, __pyx_t_13) < 0) __PYX_ERR(0, 3823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3829
 *     return AdjustableOscil(frequency, duty_factor)
 * 
 * cpdef cython.double adjustable_oscil(AdjustableOscil gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinusoid where the duty-factor sets the ratio of pulse duration to pulse period.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_405adjustable_oscil, 0, __pyx_n_s_adjustable_oscil, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__701)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__702);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_adjustable_oscil, __pyx_t_13) < 0) __PYX_ERR(0, 3829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3839
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_adjustable_oscil(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an adjustable_oscil_wave
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_407is_adjustable_oscil, 0, __pyx_n_s_is_adjustable_oscil, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__703)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_adjustable_oscil, __pyx_t_13) < 0) __PYX_ERR(0, 3839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3850
 * # --------------- make-table-lookup-with-env ---------------- #
 * 
 * cpdef make_table_lookup_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a table lookup generator from an envelope
 */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_clm); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_default); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_table_size); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_k__18 = __pyx_t_13;
  __Pyx_GIVEREF(__pyx_t_13);
  __pyx_t_13 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_clm); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_default); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_table_size); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_13);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_409make_table_lookup_with_env, 0, __pyx_n_s_make_table_lookup_with_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__705)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_table_lookup_with_env, __pyx_t_13) < 0) __PYX_ERR(0, 3850, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3863
 * # --------------- make-wave-train-with-env ---------------- #
 * 
 * cpdef make_wave_train_with_env(frequency, pulse_env, size=clm.default.table_size):             # <<<<<<<<<<<<<<
 *     """
 *     creates a wave train generator from an envelope
 */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_clm); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_default); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_table_size); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_k__19 = __pyx_t_13;
  __Pyx_GIVEREF(__pyx_t_13);
  __pyx_t_13 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_clm); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_default); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_table_size); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_13);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_411make_wave_train_with_env, 0, __pyx_n_s_make_wave_train_with_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__706)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_wave_train_with_env, __pyx_t_13) < 0) __PYX_ERR(0, 3863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3886
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.flt, clm.rand_interp(self.rnd, fm))
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11RoundInterp_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RoundInterp_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__707)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3886, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__708);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_RoundInterp, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3886, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_RoundInterp);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11RoundInterp_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RoundInterp___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__709)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_RoundInterp, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_RoundInterp);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_RoundInterp, (type(self), 0x37568ab, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_RoundInterp__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11RoundInterp_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_RoundInterp___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__710)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_RoundInterp, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_RoundInterp);

  /* "pysndlib/generators.pyx":3909
 * 
 * 
 * cpdef RoundInterp make_round_interp(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """
 *     creates a round-interp generator that produces a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_413make_round_interp, 0, __pyx_n_s_make_round_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__712)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__713);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_round_interp, __pyx_t_13) < 0) __PYX_ERR(0, 3909, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3915
 *     return RoundInterp(frequency, n, amplitude)
 * 
 * cpdef cython.double round_interp(RoundInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """returns a rand-interp sequence low-pass filtered by a moving-average generator of length n.
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_415round_interp, 0, __pyx_n_s_round_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__714)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3915, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__715);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_round_interp, __pyx_t_13) < 0) __PYX_ERR(0, 3915, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3925
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_round_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an round
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_417is_round_interp, 0, __pyx_n_s_is_round_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__716)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3925, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_round_interp, __pyx_t_13) < 0) __PYX_ERR(0, 3925, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3941
 *     return (0.5 * (1.0 + (sin (PI * (y - 0.5)))))
 * 
 * cpdef cython.double sine_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using sin function"""
 *     return clm.env_any(e, sin_env_fun)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_419sine_env, 0, __pyx_n_s_sine_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__718)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sine_env, __pyx_t_13) < 0) __PYX_ERR(0, 3941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3948
 *     return y*y
 * 
 * cpdef cython.double square_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using square wave function"""
 *     return clm.env_any(e, square_env_fun)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_421square_env, 0, __pyx_n_s_square_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__719)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_square_env, __pyx_t_13) < 0) __PYX_ERR(0, 3948, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3956
 *     return 0.084037 + (cx * ((cx * (0.375696 + (cx * ((cx * 0.041194) - 0.20762)))) - 0.29145))
 * 
 * cpdef cython.double blackman4_env(e):             # <<<<<<<<<<<<<<
 *     """connects envelope points using blackman function"""
 *     return clm.env_any(e, blackman4_env_fun)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_423blackman4_env, 0, __pyx_n_s_blackman4_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__720)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3956, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_blackman4_env, __pyx_t_13) < 0) __PYX_ERR(0, 3956, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3961
 * 
 * 
 * def multi_expt_env(e, expts):             # <<<<<<<<<<<<<<
 *     def fun(y):
 *         b = expts[clm.channels(e) % len(expts)]
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_425multi_expt_env, 0, __pyx_n_s_multi_expt_env, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__722)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3961, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_multi_expt_env, __pyx_t_13) < 0) __PYX_ERR(0, 3961, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3977
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double y = x * self.ratio
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11Nchoosekcos_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nchoosekcos_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__723)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__724);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nchoosekcos, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 3977, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nchoosekcos);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11Nchoosekcos_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nchoosekcos___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__725)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nchoosekcos, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nchoosekcos);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Nchoosekcos, (type(self), 0x062214b, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Nchoosekcos__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_11Nchoosekcos_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Nchoosekcos___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__726)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Nchoosekcos, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Nchoosekcos);

  /* "pysndlib/generators.pyx":3988
 * 
 * 
 * cpdef Nchoosekcos make_nchoosekcos(frequency=0, n=1, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """creates an nchoosekcos generator that produces a sum of cosines scaled by the binomial coefficients"""
 *     return Nchoosekcos(frequency, n, amplitude)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_427make_nchoosekcos, 0, __pyx_n_s_make_nchoosekcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__727)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__728);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_nchoosekcos, __pyx_t_13) < 0) __PYX_ERR(0, 3988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":3992
 *     return Nchoosekcos(frequency, n, amplitude)
 * 
 * cpdef cython.double nchoosekcos(Nchoosekcos gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sum of cosines scaled by the binomial coefficients
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_429nchoosekcos, 0, __pyx_n_s_nchoosekcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__729)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__730);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_nchoosekcos, __pyx_t_13) < 0) __PYX_ERR(0, 3992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4002
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_nchoosekcos(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an nchoosekcos
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_431is_nchoosekcos, 0, __pyx_n_s_is_nchoosekcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__731)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4002, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_nchoosekcos, __pyx_t_13) < 0) __PYX_ERR(0, 4002, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4029
 *         self.n = n
 * 
 *     cpdef cython.double next(self, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = self.angle
 *         cdef cython.double max_angle = PI * .5 * self.n
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9SincTrain_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SincTrain_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__732)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4029, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__733);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SincTrain, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4029, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SincTrain);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9SincTrain_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SincTrain___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__734)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SincTrain, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SincTrain);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_SincTrain, (type(self), 0x8ff2fdc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_SincTrain__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9SincTrain_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_SincTrain___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__735)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_SincTrain, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_SincTrain);

  /* "pysndlib/generators.pyx":4067
 *             self.n = 1 + (2 * val)
 * 
 * cpdef SincTrain make_sinc_train(frequency=0, n=1):             # <<<<<<<<<<<<<<
 *     """
 *     creates a sinc-train generator with n components
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_433make_sinc_train, 0, __pyx_n_s_make_sinc_train, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__736)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__168);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_sinc_train, __pyx_t_13) < 0) __PYX_ERR(0, 4067, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4073
 *     return SincTrain(frequency, n)
 * 
 * cpdef cython.double sinc_train(SincTrain gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns a sinc-train
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_435sinc_train, 0, __pyx_n_s_sinc_train, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__737)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4073, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__738);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sinc_train, __pyx_t_13) < 0) __PYX_ERR(0, 4073, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4083
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_sinc_train(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an sinc_train
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_437is_sinc_train, 0, __pyx_n_s_is_sinc_train, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__739)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_sinc_train, __pyx_t_13) < 0) __PYX_ERR(0, 4083, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4106
 *             self.data[i+1] = random.random()
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x = 0.5
 *         cdef cython.double s = 0.0
 */
  __pyx_t_13 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_t_13, __pyx_n_s_fm, __pyx_kp_s_cython_double) < 0) __PYX_ERR(0, 4106, __pyx_L1_error)
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9PinkNoise_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PinkNoise_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__740)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4106, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__741);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_14, __pyx_t_13);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_PinkNoise, __pyx_n_s_next, __pyx_t_14) < 0) __PYX_ERR(0, 4106, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_PinkNoise);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9PinkNoise_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PinkNoise___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__742)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_PinkNoise, __pyx_n_s_reduce_cython, __pyx_t_14) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_PinkNoise);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_PinkNoise, (type(self), 0x12ed653, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_PinkNoise__set_state(self, __pyx_state)
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9PinkNoise_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_PinkNoise___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__743)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_PinkNoise, __pyx_n_s_setstate_cython, __pyx_t_14) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_PinkNoise);

  /* "pysndlib/generators.pyx":4127
 *         return self.next(fm)
 * 
 * cpdef PinkNoise make_pink_noise(n=1):             # <<<<<<<<<<<<<<
 *     """Creates a pink-noise generator with n octaves of rand (12 is recommended)."""
 *     return PinkNoise( n)
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_439make_pink_noise, 0, __pyx_n_s_make_pink_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__745)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__746);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_pink_noise, __pyx_t_14) < 0) __PYX_ERR(0, 4127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":4131
 *     return PinkNoise( n)
 * 
 * cpdef cython.double pink_noise(PinkNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next random value in the 1/f stream produced by gen.
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_441pink_noise, 0, __pyx_n_s_pink_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__747)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_tuple__748);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pink_noise, __pyx_t_14) < 0) __PYX_ERR(0, 4131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":4141
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_pink_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an pink_noise
 */
  __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_443is_pink_noise, 0, __pyx_n_s_is_pink_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__749)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_pink_noise, __pyx_t_14) < 0) __PYX_ERR(0, 4141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

  /* "pysndlib/generators.pyx":4158
 *         self.sum = 0
 * 
 *     cpdef cython.double next(self, fm: cython.double =0.0):             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
  __pyx_t_14 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_fm, __pyx_kp_s_cython_double) < 0) __PYX_ERR(0, 4158, __pyx_L1_error)
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10BrownNoise_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BrownNoise_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__750)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4158, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__751);
  __Pyx_CyFunction_SetAnnotationsDict(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_BrownNoise, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4158, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_BrownNoise);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10BrownNoise_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BrownNoise___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__752)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_BrownNoise, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_BrownNoise);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_BrownNoise, (type(self), 0x58db6d8, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_BrownNoise__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10BrownNoise_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_BrownNoise___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__753)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_BrownNoise, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_BrownNoise);

  /* "pysndlib/generators.pyx":4169
 * 
 * 
 * cpdef BrownNoise make_brown_noise(frequency, amplitude=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a generator that produces brownian noise."""
 *     return BrownNoise(frequency, amplitude=1.0)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_445make_brown_noise, 0, __pyx_n_s_make_brown_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__755)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4169, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__756);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_brown_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4169, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4173
 *     return BrownNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double brown_noise(BrownNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next brownian noise sample
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_447brown_noise, 0, __pyx_n_s_brown_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__757)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__758);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_brown_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4183
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_brown_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an brown_noise
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_449is_brown_noise, 0, __pyx_n_s_is_brown_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__759)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4183, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_brown_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4183, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4205
 * 
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0) :             # <<<<<<<<<<<<<<
 *         val: cython.double = clm.rand(self.gr, fm)
 *         if val != self.prev:
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10GreenNoise_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoise_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__760)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4205, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__761);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoise, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4205, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoise);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10GreenNoise_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoise___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__762)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoise, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoise);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoise, (type(self), 0x175c081, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoise__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_10GreenNoise_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoise___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__763)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoise, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoise);

  /* "pysndlib/generators.pyx":4217
 *         return self.next(fm)
 * 
 * cpdef GreenNoise make_green_noise(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoise(frequency, amplitude=1.0)
 */
  __pyx_t_13 = PyFloat_FromDouble((-1.0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_k__22 = __pyx_t_13;
  __Pyx_GIVEREF(__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = PyFloat_FromDouble((-1.0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_float_1_0)) __PYX_ERR(0, 4217, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_13);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_13)) __PYX_ERR(0, 4217, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_float_1_0)) __PYX_ERR(0, 4217, __pyx_L1_error);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_451make_green_noise, 0, __pyx_n_s_make_green_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__765)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_green_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4221
 *     return GreenNoise(frequency, amplitude=1.0)
 * 
 * cpdef cython.double  green_noise(GreenNoise gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the next sample in a sequence of bounded brownian noise samples.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_453green_noise, 0, __pyx_n_s_green_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__766)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4221, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__767);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_green_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4221, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4232
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_455is_green_noise, 0, __pyx_n_s_is_green_noise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__768)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4232, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_green_noise, __pyx_t_13) < 0) __PYX_ERR(0, 4232, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4254
 *        # print(f'dv: {self.dv} incr: {self.incr}')
 * 
 *     cpdef cython.double next(self, cython.double fm = 0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double val
 *         if not (0.0 <= self.angle <= TWO_PI):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoiseInterp_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__769)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__770);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoiseInterp___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__771)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_GreenNoiseInterp, (type(self), 0xeb68a80, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_GreenNoiseInterp__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_16GreenNoiseInterp_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_GreenNoiseInterp___setstate_cyth, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__772)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_GreenNoiseInterp);

  /* "pysndlib/generators.pyx":4273
 * 
 * 
 * cpdef GreenNoiseInterp make_green_noise_interp(frequency, amplitude=1.0, low=-1.0, high=1.0):             # <<<<<<<<<<<<<<
 *     """Returns a new green-noise (bounded brownian noise) generator."""
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 */
  __pyx_t_13 = PyFloat_FromDouble((-1.0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_k__23 = __pyx_t_13;
  __Pyx_GIVEREF(__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_13 = PyFloat_FromDouble((-1.0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_float_1_0)) __PYX_ERR(0, 4273, __pyx_L1_error);
  __Pyx_GIVEREF(__pyx_t_13);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_13)) __PYX_ERR(0, 4273, __pyx_L1_error);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_float_1_0)) __PYX_ERR(0, 4273, __pyx_L1_error);
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_457make_green_noise_interp, 0, __pyx_n_s_make_green_noise_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__773)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_t_14);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_green_noise_interp, __pyx_t_13) < 0) __PYX_ERR(0, 4273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4277
 *     return GreenNoiseInterp(frequency, amplitude=1.0)
 * 
 * cpdef green_noise_interp(GreenNoiseInterp gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     Returns the next sample in a sequence of interpolated bounded brownian noise samples.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_459green_noise_interp, 0, __pyx_n_s_green_noise_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__774)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__775);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_green_noise_interp, __pyx_t_13) < 0) __PYX_ERR(0, 4277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4287
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_green_noise_interp(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an green_noise_interp
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_461is_green_noise_interp, 0, __pyx_n_s_is_green_noise_interp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__776)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_green_noise_interp, __pyx_t_13) < 0) __PYX_ERR(0, 4287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4304
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.moving_average(self.gen, fabs(insig))
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingSum_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingSum_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__778)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4304, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__779);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingSum, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4304, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingSum);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingSum_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingSum___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__780)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingSum, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingSum);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingSum, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingSum__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingSum_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingSum___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__781)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingSum, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingSum);

  /* "pysndlib/generators.pyx":4311
 * 
 * 
 * cpdef MovingSum make_moving_sum(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-sum generator that produces the sum of the absolute values in a moving window over the last n inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_463make_moving_sum, 0, __pyx_n_s_make_moving_sum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__782)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4311, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_moving_sum, __pyx_t_13) < 0) __PYX_ERR(0, 4311, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4317
 *     return MovingSum(n)
 * 
 * cpdef cython.double moving_sum(MovingSum gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the absolute values in a moving window over the last n inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_465moving_sum, 0, __pyx_n_s_moving_sum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__785)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4317, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__786);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_moving_sum, __pyx_t_13) < 0) __PYX_ERR(0, 4317, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4326
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_sum(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_sum
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_467is_moving_sum, 0, __pyx_n_s_is_moving_sum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__787)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_moving_sum, __pyx_t_13) < 0) __PYX_ERR(0, 4326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4346
 * 
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         cdef cython.double x1 = clm.moving_average(self.gen1, insig)
 *         cdef cython.double x2 = clm.moving_average(self.gen2, insig*insig)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14MovingVariance_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingVariance_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__788)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4346, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__789);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingVariance, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4346, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingVariance);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14MovingVariance_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingVariance___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__790)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingVariance, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingVariance);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingVariance, (type(self), 0xa7164bc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingVariance__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_14MovingVariance_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingVariance___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__791)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingVariance, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingVariance);

  /* "pysndlib/generators.pyx":4355
 * 
 * 
 * cpdef MovingVariance make_moving_variance(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-variance generator that produces the variance of the values in a moving window over the last n inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_469make_moving_variance, 0, __pyx_n_s_make_moving_variance, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__792)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_moving_variance, __pyx_t_13) < 0) __PYX_ERR(0, 4355, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4361
 *     return MovingVariance(n)
 * 
 * cpdef cython.double moving_variance(MovingVariance gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the variance of the values in a moving window over the last n inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_471moving_variance, 0, __pyx_n_s_moving_variance, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__793)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__794);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_moving_variance, __pyx_t_13) < 0) __PYX_ERR(0, 4361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4370
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_variance(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_variance
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_473is_moving_variance, 0, __pyx_n_s_is_moving_variance, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__795)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_moving_variance, __pyx_t_13) < 0) __PYX_ERR(0, 4370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4390
 *         self.gen = clm.make_moving_average(self.n)
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return sqrt(clm.moving_average(self.gen, insig*insig))
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingRMS_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingRMS_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__796)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__797);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingRMS);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingRMS_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingRMS___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__798)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingRMS);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingRMS, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingRMS__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingRMS_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingRMS___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__799)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingRMS, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingRMS);

  /* "pysndlib/generators.pyx":4397
 * 
 * 
 * cpdef MovingRMS make_moving_rms(n=128):             # <<<<<<<<<<<<<<
 *     """
 *     returns a moving-rms generator that produces
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_475make_moving_rms, 0, __pyx_n_s_make_moving_rms, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__800)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_moving_rms, __pyx_t_13) < 0) __PYX_ERR(0, 4397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4404
 *     return MovingRMS(n)
 * 
 * cpdef cython.double moving_rms(MovingRMS gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the rms of the values in a window over the last n inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_477moving_rms, 0, __pyx_n_s_moving_rms, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__801)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__802);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_moving_rms, __pyx_t_13) < 0) __PYX_ERR(0, 4404, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4413
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_rms(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_rms
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_479is_moving_rms, 0, __pyx_n_s_is_moving_rms, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__803)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_moving_rms, __pyx_t_13) < 0) __PYX_ERR(0, 4413, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_12MovingLength_3__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingLength___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__804)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingLength);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingLength, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingLength__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_12MovingLength_5__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingLength___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__805)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingLength, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingLength);

  /* "pysndlib/generators.pyx":4430
 *         self.gen.mus_increment = 1.0
 * 
 * cpdef MovingLength make_moving_length(n=128):             # <<<<<<<<<<<<<<
 *     """returns a moving-length generator that produces the length
 *     of the values in a window over the last few inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_481make_moving_length, 0, __pyx_n_s_make_moving_length, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__806)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_moving_length, __pyx_t_13) < 0) __PYX_ERR(0, 4430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4436
 *     return MovingLength(n)
 * 
 * cpdef cython.double moving_length(MovingLength gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the length of the values in a window over the last few inputs.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_483moving_length, 0, __pyx_n_s_moving_length, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__807)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__808);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_moving_length, __pyx_t_13) < 0) __PYX_ERR(0, 4436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4447
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_moving_length(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an moving_length
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_485is_moving_length, 0, __pyx_n_s_is_moving_length, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__809)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4447, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_moving_length, __pyx_t_13) < 0) __PYX_ERR(0, 4447, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4467
 *         self.sum = 0.0
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         self.num = (self.num + (self.n*insig)) - self.sum
 *         self.sum = clm.moving_average(self.dly, insig)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_WeightedMovingAverage_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__810)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__811);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_WeightedMovingAverage___reduce_c, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__812)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_WeightedMovingAverage, (type(self), 0xb7187fc, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_WeightedMovingAverage__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_21WeightedMovingAverage_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_WeightedMovingAverage___setstate, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__813)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_WeightedMovingAverage);

  /* "pysndlib/generators.pyx":4476
 * 
 * 
 * cpdef WeightedMovingAverage make_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns a weighted-moving-average generator that produces the sum of the last n inputs weighted by 1/n"""
 *     return WeightedMovingAverage(n)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_487make_weighted_moving_average, 0, __pyx_n_s_make_weighted_moving_average, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__814)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4476, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_weighted_moving_average, __pyx_t_13) < 0) __PYX_ERR(0, 4476, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4480
 *     return WeightedMovingAverage(n)
 * 
 * cpdef cython.double weighted_moving_average(WeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by 1/n
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_489weighted_moving_average, 0, __pyx_n_s_weighted_moving_average, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__815)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__816);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_weighted_moving_average, __pyx_t_13) < 0) __PYX_ERR(0, 4480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4490
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an weighted_moving_average
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_491is_weighted_moving_average, 0, __pyx_n_s_is_weighted_moving_average, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__817)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_weighted_moving_average, __pyx_t_13) < 0) __PYX_ERR(0, 4490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4507
 *         self.gen = clm.make_one_pole(1.0 / self.n, -self.n / (1.0 + self.n))
 * 
 *     cpdef cython.double next(self, cython.double insig=0.0):             # <<<<<<<<<<<<<<
 *         return clm.one_pole(self.gen, insig)
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ExponentiallyWeightedMovingAvera_2, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__818)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__819);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ExponentiallyWeightedMovingAvera_3, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__820)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_ExponentiallyWeightedMovingAverage, (type(self), 0x55441aa, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_ExponentiallyWeightedMovingAverage__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_34ExponentiallyWeightedMovingAverage_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_ExponentiallyWeightedMovingAvera_4, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__821)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_ExponentiallyWeightedMovingAverage);

  /* "pysndlib/generators.pyx":4514
 * 
 * 
 * cpdef ExponentiallyWeightedMovingAverage make_exponentially_weighted_moving_average(n=128):             # <<<<<<<<<<<<<<
 *     """returns an exponentially-weighted-moving-average generator that produces the sum of the last n inputs weighted by (-n/(n+1))^k"""
 *     return ExponentiallyWeightedMovingAverage(n)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_493make_exponentially_weighted_moving_average, 0, __pyx_n_s_make_exponentially_weighted_movi, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__822)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__783);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_exponentially_weighted_movi, __pyx_t_13) < 0) __PYX_ERR(0, 4514, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4518
 *     return ExponentiallyWeightedMovingAverage(n)
 * 
 * cpdef cython.double exponentially_weighted_moving_average(ExponentiallyWeightedMovingAverage gen, cython.double insig=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns the sum of the last n inputs weighted by (-n/(n+1))^k
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_495exponentially_weighted_moving_average, 0, __pyx_n_s_exponentially_weighted_moving_av, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__823)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__824);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_exponentially_weighted_moving_av, __pyx_t_13) < 0) __PYX_ERR(0, 4518, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4528
 *     return gen.next(insig)
 * 
 * cpdef cython.bint is_exponentially_weighted_moving_average(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an exponentially_weighted_moving_average
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_497is_exponentially_weighted_moving_average, 0, __pyx_n_s_is_exponentially_weighted_moving, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__825)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_exponentially_weighted_moving, __pyx_t_13) < 0) __PYX_ERR(0, 4528, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4540
 * # --------------- polyoid ---------------- #
 * 
 * cpdef clm.mus_any make_polyoid(frequency, partial_amps_and_phases):             # <<<<<<<<<<<<<<
 *     """
 *     returns a polyoid generator that combines the first and second Chebyshev polynomials
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_499make_polyoid, 0, __pyx_n_s_make_polyoid, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__827)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_polyoid, __pyx_t_13) < 0) __PYX_ERR(0, 4540, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4561
 *     return clm.make_polywave(frequency, xcoeffs=cos_amps, ycoeffs=sin_amps)
 * 
 * cpdef cython.double polyoid(clm.mus_any gen, cython.double fm=0.0):             # <<<<<<<<<<<<<<
 *     """
 *     returns sum of sinusoids each with arbitrary amplitude and initial-phase.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_501polyoid, 0, __pyx_n_s_polyoid, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__828)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__829);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_polyoid, __pyx_t_13) < 0) __PYX_ERR(0, 4561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4572
 * # look at this later
 * #cpdef cython.double polyoid_env(clm.mus_any gen, cython.double fm=0.0, amps, phases, original_data):
 * cpdef cython.bint is_polyoid(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an polyoid
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_503is_polyoid, 0, __pyx_n_s_is_polyoid, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__830)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_polyoid, __pyx_t_13) < 0) __PYX_ERR(0, 4572, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4581
 *     return clm.is_polywave(gen) and gen.mus_channel == clm.Polynomial.BOTH_KINDS
 * 
 * cpdef polyoid_tn(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_xcoeffs
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_505polyoid_tn, 0, __pyx_n_s_polyoid_tn, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__831)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_polyoid_tn, __pyx_t_13) < 0) __PYX_ERR(0, 4581, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4584
 *     return gen.mus_xcoeffs
 * 
 * cpdef polyoid_un(gen):             # <<<<<<<<<<<<<<
 *     return gen.mus_ycoeffs
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_507polyoid_un, 0, __pyx_n_s_polyoid_un, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__832)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_polyoid_un, __pyx_t_13) < 0) __PYX_ERR(0, 4584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4608
 *         self.frequency = clm.hz2radians(frequency)
 * 
 *     cpdef cython.double next(self, cython.double fm =0.0):             # <<<<<<<<<<<<<<
 *         return tanh(self.r * clm.oscil(self.osc, fm))
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Tanhsin_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Tanhsin_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__833)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__834);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Tanhsin, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4608, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Tanhsin);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Tanhsin_7__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Tanhsin___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__835)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Tanhsin, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Tanhsin);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_Tanhsin, (type(self), 0x91c421f, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_Tanhsin__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_7Tanhsin_9__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_Tanhsin___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__836)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_Tanhsin, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_Tanhsin);

  /* "pysndlib/generators.pyx":4615
 * 
 * 
 * cpdef Tanhsin make_tanhsin(frequency=0, r=1.):             # <<<<<<<<<<<<<<
 *     """returns a tanhsin generator that produces tanh(r*sin) which approaches a square wave as r increases."""
 *     return Tanhsin(frequency, r)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_509make_tanhsin, 0, __pyx_n_s_make_tanhsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__837)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__838);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_tanhsin, __pyx_t_13) < 0) __PYX_ERR(0, 4615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4619
 *     return Tanhsin(frequency, r)
 * 
 * cpdef cython.double tanhsin(Tanhsin gen, cython.double fm=0.):             # <<<<<<<<<<<<<<
 *     """
 *     returns tanh(r*sin) which approaches a square wave as r increases.
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_511tanhsin, 0, __pyx_n_s_tanhsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__839)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__840);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tanhsin, __pyx_t_13) < 0) __PYX_ERR(0, 4619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4629
 *     return gen.next(fm)
 * 
 * cpdef cython.bint is_tanhsin(gen):             # <<<<<<<<<<<<<<
 *     """
 *     returns True if gen is an tanhsin
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_513is_tanhsin, 0, __pyx_n_s_is_tanhsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__841)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_tanhsin, __pyx_t_13) < 0) __PYX_ERR(0, 4629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4709
 *         self.outctr = self.n + 1
 * 
 *     cpdef cython.double next(self, cython.double x=0):             # <<<<<<<<<<<<<<
 *         new_data = False
 *         cdef cython.long i = 0
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingFFT_3next, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingFFT_next, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__843)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__844);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT, __pyx_n_s_next, __pyx_t_13) < 0) __PYX_ERR(0, 4709, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingFFT);

  /* "pysndlib/generators.pyx":4748
 *         return self.im
 * 
 *     cpdef mus_run(self, arg1, arg2):             # <<<<<<<<<<<<<<
 *         self.next()
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingFFT_7mus_run, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingFFT_mus_run, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__846)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT, __pyx_n_s_mus_run, __pyx_t_13) < 0) __PYX_ERR(0, 4748, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingFFT);

  /* "(tree fragment)":1
 * def __reduce_cython__(self):             # <<<<<<<<<<<<<<
 *     cdef tuple state
 *     cdef object _dict
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingFFT_9__reduce_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingFFT___reduce_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__847)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT, __pyx_n_s_reduce_cython, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingFFT);

  /* "(tree fragment)":16
 *     else:
 *         return __pyx_unpickle_MovingFFT, (type(self), 0xe3b0c44, state)
 * def __setstate_cython__(self, __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_unpickle_MovingFFT__set_state(self, __pyx_state)
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_9MovingFFT_11__setstate_cython__, __Pyx_CYFUNCTION_CCLASS, __pyx_n_s_MovingFFT___setstate_cython, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__848)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (__Pyx_SetItemOnTypeDict((PyObject *)__pyx_ptype_8pysndlib_10generators_MovingFFT, __pyx_n_s_setstate_cython, __pyx_t_13) < 0) __PYX_ERR(1, 16, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  PyType_Modified(__pyx_ptype_8pysndlib_10generators_MovingFFT);

  /* "pysndlib/generators.pyx":4751
 *         self.next()
 * 
 * cpdef MovingFFT make_moving_fft(clm.mus_any reader, n=512, hop=128, outctr=0):             # <<<<<<<<<<<<<<
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_515make_moving_fft, 0, __pyx_n_s_make_moving_fft, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__850)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4751, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_13, __pyx_tuple__851);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_make_moving_fft, __pyx_t_13) < 0) __PYX_ERR(0, 4751, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4754
 *     return MovingFFT(reader, n, hop, outctr)
 * 
 * cpdef cython.double moving_fft(MovingFFT gen):             # <<<<<<<<<<<<<<
 *     return gen.next()
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_517moving_fft, 0, __pyx_n_s_moving_fft, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__852)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4754, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_moving_fft, __pyx_t_13) < 0) __PYX_ERR(0, 4754, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":4757
 *     return gen.next()
 * 
 * cpdef cython.bint is_moving_fft(gen):             # <<<<<<<<<<<<<<
 *     return isinstance(gen, MovingFFT)
 * 
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_519is_moving_fft, 0, __pyx_n_s_is_moving_fft, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__853)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_moving_fft, __pyx_t_13) < 0) __PYX_ERR(0, 4757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_CLMGenerator(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_521__pyx_unpickle_CLMGenerator, 0, __pyx_n_s_pyx_unpickle_CLMGenerator, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__855)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_CLMGenerator, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_CLMGenerator__set_state(<CLMGenerator> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_CLMGenerator__set_state(CLMGenerator __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_523__pyx_unpickle_Nssb, 0, __pyx_n_s_pyx_unpickle_Nssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__856)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxysin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_525__pyx_unpickle_Nxysin, 0, __pyx_n_s_pyx_unpickle_Nxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__857)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nxysin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxysin__set_state(<Nxysin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxysin__set_state(Nxysin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]; __pyx_result.ratio = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_527__pyx_unpickle_Nxycos, 0, __pyx_n_s_pyx_unpickle_Nxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__858)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nxycos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nxy1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_529__pyx_unpickle_Nxy1cos, 0, __pyx_n_s_pyx_unpickle_Nxy1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__859)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nxy1cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nxy1cos__set_state(<Nxy1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nxy1cos__set_state(Nxy1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_531__pyx_unpickle_Nxy1sin, 0, __pyx_n_s_pyx_unpickle_Nxy1sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__860)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nxy1sin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Noddsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_533__pyx_unpickle_Noddsin, 0, __pyx_n_s_pyx_unpickle_Noddsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__861)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Noddsin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Noddsin__set_state(<Noddsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddsin__set_state(Noddsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     if len(__pyx_state) > 0 and hasattr(__pyx_result, '__dict__'):
 *         __pyx_result.__dict__.update(__pyx_state[0])
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_535__pyx_unpickle_Noddcos, 0, __pyx_n_s_pyx_unpickle_Noddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__862)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Noddcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Noddssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_537__pyx_unpickle_Noddssb, 0, __pyx_n_s_pyx_unpickle_Noddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__863)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Noddssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Noddssb__set_state(<Noddssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Noddssb__set_state(Noddssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_539__pyx_unpickle_Ncos2, 0, __pyx_n_s_pyx_unpickle_Ncos2, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__864)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ncos2, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ncos4(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_541__pyx_unpickle_Ncos4, 0, __pyx_n_s_pyx_unpickle_Ncos4, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__865)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ncos4, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ncos4__set_state(<Ncos4> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos4__set_state(Ncos4 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_543__pyx_unpickle_Npcos, 0, __pyx_n_s_pyx_unpickle_Npcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__866)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Npcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ncos5(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_545__pyx_unpickle_Ncos5, 0, __pyx_n_s_pyx_unpickle_Ncos5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__867)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ncos5, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ncos5__set_state(<Ncos5> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ncos5__set_state(Ncos5 __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_547__pyx_unpickle_Nsin5, 0, __pyx_n_s_pyx_unpickle_Nsin5, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__868)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nsin5, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nrcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_549__pyx_unpickle_Nrcos, 0, __pyx_n_s_pyx_unpickle_Nrcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__869)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nrcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nrcos__set_state(<Nrcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nrcos__set_state(Nrcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.e1 = __pyx_state[1]; __pyx_result.e2 = __pyx_state[2]; __pyx_result.frequency = __pyx_state[3]; __pyx_result.n = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]; __pyx_result.r = __pyx_state[6]; __pyx_result.r1 = __pyx_state[7]; __pyx_result.rr = __pyx_state[8]; __pyx_result.trouble = __pyx_state[9]
 *     if len(__pyx_state) > 10 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_551__pyx_unpickle_Nrssb, 0, __pyx_n_s_pyx_unpickle_Nrssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__870)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nrssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nkssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_553__pyx_unpickle_Nkssb, 0, __pyx_n_s_pyx_unpickle_Nkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__871)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nkssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nkssb__set_state(<Nkssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nkssb__set_state(Nkssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.interp = __pyx_state[2]; __pyx_result.n = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_555__pyx_unpickle_Nsincos, 0, __pyx_n_s_pyx_unpickle_Nsincos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__872)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nsincos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_N1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_557__pyx_unpickle_N1cos, 0, __pyx_n_s_pyx_unpickle_N1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__873)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_N1cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_N1cos__set_state(<N1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_N1cos__set_state(N1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_559__pyx_unpickle_Npos1cos, 0, __pyx_n_s_pyx_unpickle_Npos1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__874)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Npos1cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Npos3cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_561__pyx_unpickle_Npos3cos, 0, __pyx_n_s_pyx_unpickle_Npos3cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__875)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Npos3cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Npos3cos__set_state(<Npos3cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Npos3cos__set_state(Npos3cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_563__pyx_unpickle_Rcos, 0, __pyx_n_s_pyx_unpickle_Rcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__876)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_565__pyx_unpickle_Rssb, 0, __pyx_n_s_pyx_unpickle_Rssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__877)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rssb__set_state(<Rssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rssb__set_state(Rssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_567__pyx_unpickle_Rxysin, 0, __pyx_n_s_pyx_unpickle_Rxysin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__878)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rxysin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rxycos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_569__pyx_unpickle_Rxycos, 0, __pyx_n_s_pyx_unpickle_Rxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__879)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rxycos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rxycos__set_state(<Rxycos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rxycos__set_state(Rxycos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]; __pyx_result.r2 = __pyx_state[4]; __pyx_result.ratio = __pyx_state[5]; __pyx_result.rr = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_571__pyx_unpickle_SafeRxycos, 0, __pyx_n_s_pyx_unpickle_SafeRxycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__880)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_SafeRxycos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Ercos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_573__pyx_unpickle_Ercos, 0, __pyx_n_s_pyx_unpickle_Ercos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__881)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Ercos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Ercos__set_state(<Ercos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Ercos__set_state(Ercos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.cosh_t = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.offset = __pyx_state[3]; __pyx_result.osc = __pyx_state[4]; __pyx_result.r = __pyx_state[5]; __pyx_result.scaler = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_575__pyx_unpickle_Erssb, 0, __pyx_n_s_pyx_unpickle_Erssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__882)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Erssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_577__pyx_unpickle_R2cos, 0, __pyx_n_s_pyx_unpickle_R2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__883)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_R2cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2cos__set_state(<R2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2cos__set_state(R2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_579__pyx_unpickle_R2ssb, 0, __pyx_n_s_pyx_unpickle_R2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__884)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_R2ssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Eoddcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_581__pyx_unpickle_Eoddcos, 0, __pyx_n_s_pyx_unpickle_Eoddcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__885)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Eoddcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Eoddcos__set_state(<Eoddcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Eoddcos__set_state(Eoddcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_583__pyx_unpickle_Rkcos, 0, __pyx_n_s_pyx_unpickle_Rkcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__886)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rkcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_585__pyx_unpickle_Rksin, 0, __pyx_n_s_pyx_unpickle_Rksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__887)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rksin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rksin__set_state(<Rksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rksin__set_state(Rksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_587__pyx_unpickle_Rkssb, 0, __pyx_n_s_pyx_unpickle_Rkssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__888)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rkssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Rkfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_589__pyx_unpickle_Rkfcos, 0, __pyx_n_s_pyx_unpickle_Rkfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__889)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rkfcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Rkfcos__set_state(<Rkfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Rkfcos__set_state(Rkfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_591__pyx_unpickle_Rkfssb, 0, __pyx_n_s_pyx_unpickle_Rkfssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__890)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rkfssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_R2kfcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_593__pyx_unpickle_R2kfcos, 0, __pyx_n_s_pyx_unpickle_R2kfcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__891)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_R2kfcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_R2kfcos__set_state(<R2kfcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_R2kfcos__set_state(R2kfcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.k = __pyx_state[1]; __pyx_result.norm = __pyx_state[2]; __pyx_result.osc = __pyx_state[3]; __pyx_result.r = __pyx_state[4]; __pyx_result.r2 = __pyx_state[5]; __pyx_result.rr1 = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_595__pyx_unpickle_K2sin, 0, __pyx_n_s_pyx_unpickle_K2sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__892)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_K2sin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_K2cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_597__pyx_unpickle_K2cos, 0, __pyx_n_s_pyx_unpickle_K2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__893)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_K2cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_K2cos__set_state(<K2cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_K2cos__set_state(K2cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_599__pyx_unpickle_K2ssb, 0, __pyx_n_s_pyx_unpickle_K2ssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__894)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_K2ssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Dblsum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_601__pyx_unpickle_Dblsum, 0, __pyx_n_s_pyx_unpickle_Dblsum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__895)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Dblsum, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Dblsum__set_state(<Dblsum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Dblsum__set_state(Dblsum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_603__pyx_unpickle_Rkoddssb, 0, __pyx_n_s_pyx_unpickle_Rkoddssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__896)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Rkoddssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Krksin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_605__pyx_unpickle_Krksin, 0, __pyx_n_s_pyx_unpickle_Krksin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__897)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Krksin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Krksin__set_state(<Krksin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Krksin__set_state(Krksin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_607__pyx_unpickle_Absin, 0, __pyx_n_s_pyx_unpickle_Absin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__898)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Absin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Abcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_609__pyx_unpickle_Abcos, 0, __pyx_n_s_pyx_unpickle_Abcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__899)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Abcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Abcos__set_state(<Abcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Abcos__set_state(Abcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.ab = __pyx_state[1]; __pyx_result.angle = __pyx_state[2]; __pyx_result.b = __pyx_state[3]; __pyx_result.frequency = __pyx_state[4]; __pyx_result.norm = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_611__pyx_unpickle_R2k2cos, 0, __pyx_n_s_pyx_unpickle_R2k2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__900)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_R2k2cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Blsaw(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_613__pyx_unpickle_Blsaw, 0, __pyx_n_s_pyx_unpickle_Blsaw, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__901)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Blsaw, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Blsaw__set_state(<Blsaw> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Blsaw__set_state(Blsaw __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_615__pyx_unpickle_Asyfm, 0, __pyx_n_s_pyx_unpickle_Asyfm, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__902)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Asyfm, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Bess(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_617__pyx_unpickle_Bess, 0, __pyx_n_s_pyx_unpickle_Bess, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__903)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Bess, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Bess__set_state(<Bess> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Bess__set_state(Bess __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.norm = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_619__pyx_unpickle_Jjcos, 0, __pyx_n_s_pyx_unpickle_Jjcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__904)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Jjcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_J0evencos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_621__pyx_unpickle_J0evencos, 0, __pyx_n_s_pyx_unpickle_J0evencos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__905)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_J0evencos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_J0evencos__set_state(<J0evencos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0evencos__set_state(J0evencos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_623__pyx_unpickle_J2cos, 0, __pyx_n_s_pyx_unpickle_J2cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__906)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_J2cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jpcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_625__pyx_unpickle_Jpcos, 0, __pyx_n_s_pyx_unpickle_Jpcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__907)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Jpcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jpcos__set_state(<Jpcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jpcos__set_state(Jpcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.angle = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.k = __pyx_state[3]; __pyx_result.r = __pyx_state[4]
 *     if len(__pyx_state) > 5 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_627__pyx_unpickle_Jncos, 0, __pyx_n_s_pyx_unpickle_Jncos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__908)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Jncos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_J0j1cos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_629__pyx_unpickle_J0j1cos, 0, __pyx_n_s_pyx_unpickle_J0j1cos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__909)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_J0j1cos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_J0j1cos__set_state(<J0j1cos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_J0j1cos__set_state(J0j1cos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.index = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_631__pyx_unpickle_Jycos, 0, __pyx_n_s_pyx_unpickle_Jycos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__910)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Jycos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Jcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_633__pyx_unpickle_Jcos, 0, __pyx_n_s_pyx_unpickle_Jcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__911)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Jcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Jcos__set_state(<Jcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Jcos__set_state(Jcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.a = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.r = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_635__pyx_unpickle_Blackman, 0, __pyx_n_s_pyx_unpickle_Blackman, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__912)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Blackman, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Fmssb(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_637__pyx_unpickle_Fmssb, 0, __pyx_n_s_pyx_unpickle_Fmssb, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__913)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Fmssb, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Fmssb__set_state(<Fmssb> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Fmssb__set_state(Fmssb __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.idx = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_639__pyx_unpickle_K3sin, 0, __pyx_n_s_pyx_unpickle_K3sin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__914)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_K3sin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Izcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_641__pyx_unpickle_Izcos, 0, __pyx_n_s_pyx_unpickle_Izcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__915)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Izcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Izcos__set_state(<Izcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Izcos__set_state(Izcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.dc = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.inorm = __pyx_state[3]; __pyx_result.norm = __pyx_state[4]; __pyx_result.r = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_643__pyx_unpickle_AdjustableSquareWave, 0, __pyx_n_s_pyx_unpickle_AdjustableSquareW, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__916)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AdjustableSquareW, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableTriangleWave(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_645__pyx_unpickle_AdjustableTriangleWave, 0, __pyx_n_s_pyx_unpickle_AdjustableTriangl, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__917)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AdjustableTriangl, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableTriangleWave__set_state(<AdjustableTriangleWave> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableTriangleWave__set_state(AdjustableTriangleWave __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_647__pyx_unpickle_AdjustableSawtoothWave, 0, __pyx_n_s_pyx_unpickle_AdjustableSawtoot, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__918)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AdjustableSawtoot, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_AdjustableOscil(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_649__pyx_unpickle_AdjustableOscil, 0, __pyx_n_s_pyx_unpickle_AdjustableOscil, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__919)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_AdjustableOscil, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_AdjustableOscil__set_state(<AdjustableOscil> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_AdjustableOscil__set_state(AdjustableOscil __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.duty_factor = __pyx_state[1]; __pyx_result.frequency = __pyx_state[2]; __pyx_result.gen = __pyx_state[3]; __pyx_result.mtop = __pyx_state[4]; __pyx_result.scl = __pyx_state[5]; __pyx_result.top = __pyx_state[6]; __pyx_result.val = __pyx_state[7]
 *     if len(__pyx_state) > 8 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_651__pyx_unpickle_RoundInterp, 0, __pyx_n_s_pyx_unpickle_RoundInterp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__920)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_RoundInterp, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Nchoosekcos(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_653__pyx_unpickle_Nchoosekcos, 0, __pyx_n_s_pyx_unpickle_Nchoosekcos, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__921)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Nchoosekcos, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Nchoosekcos__set_state(<Nchoosekcos> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Nchoosekcos__set_state(Nchoosekcos __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.angle = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.ratio = __pyx_state[3]
 *     if len(__pyx_state) > 4 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_655__pyx_unpickle_SincTrain, 0, __pyx_n_s_pyx_unpickle_SincTrain, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__922)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_SincTrain, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_PinkNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_657__pyx_unpickle_PinkNoise, 0, __pyx_n_s_pyx_unpickle_PinkNoise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__923)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_PinkNoise, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_PinkNoise__set_state(<PinkNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_PinkNoise__set_state(PinkNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.data = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_659__pyx_unpickle_BrownNoise, 0, __pyx_n_s_pyx_unpickle_BrownNoise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__924)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_BrownNoise, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_GreenNoise(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_661__pyx_unpickle_GreenNoise, 0, __pyx_n_s_pyx_unpickle_GreenNoise, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__925)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_GreenNoise, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_GreenNoise__set_state(<GreenNoise> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_GreenNoise__set_state(GreenNoise __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.amplitude = __pyx_state[0]; __pyx_result.frequency = __pyx_state[1]; __pyx_result.gr = __pyx_state[2]; __pyx_result.high = __pyx_state[3]; __pyx_result.low = __pyx_state[4]; __pyx_result.prev = __pyx_state[5]; __pyx_result.sum = __pyx_state[6]
 *     if len(__pyx_state) > 7 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_663__pyx_unpickle_GreenNoiseInterp, 0, __pyx_n_s_pyx_unpickle_GreenNoiseInterp, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__926)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_GreenNoiseInterp, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingSum(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_665__pyx_unpickle_MovingSum, 0, __pyx_n_s_pyx_unpickle_MovingSum, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__927)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MovingSum, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingSum__set_state(<MovingSum> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingSum__set_state(MovingSum __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_667__pyx_unpickle_MovingVariance, 0, __pyx_n_s_pyx_unpickle_MovingVariance, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__928)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MovingVariance, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_MovingRMS(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_669__pyx_unpickle_MovingRMS, 0, __pyx_n_s_pyx_unpickle_MovingRMS, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__929)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MovingRMS, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_MovingRMS__set_state(<MovingRMS> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_MovingRMS__set_state(MovingRMS __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.gen = __pyx_state[0]; __pyx_result.n = __pyx_state[1]
 *     if len(__pyx_state) > 2 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_671__pyx_unpickle_MovingLength, 0, __pyx_n_s_pyx_unpickle_MovingLength, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__930)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MovingLength, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_WeightedMovingAverage(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_673__pyx_unpickle_WeightedMovingAverage, 0, __pyx_n_s_pyx_unpickle_WeightedMovingAve, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__931)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_WeightedMovingAve, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_WeightedMovingAverage__set_state(<WeightedMovingAverage> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_WeightedMovingAverage__set_state(WeightedMovingAverage __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.den = __pyx_state[0]; __pyx_result.dly = __pyx_state[1]; __pyx_result.n = __pyx_state[2]; __pyx_result.num = __pyx_state[3]; __pyx_result.sum = __pyx_state[4]; __pyx_result.y = __pyx_state[5]
 *     if len(__pyx_state) > 6 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_675__pyx_unpickle_ExponentiallyWeightedMovingAverage, 0, __pyx_n_s_pyx_unpickle_ExponentiallyWeig, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__932)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_ExponentiallyWeig, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":1
 * def __pyx_unpickle_Tanhsin(__pyx_type, long __pyx_checksum, __pyx_state):             # <<<<<<<<<<<<<<
 *     cdef object __pyx_PickleError
 *     cdef object __pyx_result
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_677__pyx_unpickle_Tanhsin, 0, __pyx_n_s_pyx_unpickle_Tanhsin, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__933)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Tanhsin, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "(tree fragment)":11
 *         __pyx_unpickle_Tanhsin__set_state(<Tanhsin> __pyx_result, __pyx_state)
 *     return __pyx_result
 * cdef __pyx_unpickle_Tanhsin__set_state(Tanhsin __pyx_result, tuple __pyx_state):             # <<<<<<<<<<<<<<
 *     __pyx_result.frequency = __pyx_state[0]; __pyx_result.osc = __pyx_state[1]; __pyx_result.r = __pyx_state[2]
 *     if len(__pyx_state) > 3 and hasattr(__pyx_result, '__dict__'):
 */
  __pyx_t_13 = __Pyx_CyFunction_New(&__pyx_mdef_8pysndlib_10generators_679__pyx_unpickle_MovingFFT, 0, __pyx_n_s_pyx_unpickle_MovingFFT, NULL, __pyx_n_s_pysndlib_generators, __pyx_d, ((PyObject *)__pyx_codeobj__934)); if (unlikely(!__pyx_t_13)) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_MovingFFT, __pyx_t_13) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /* "pysndlib/generators.pyx":1
 * #==================================================================================             # <<<<<<<<<<<<<<
 * # The code is part of an attempt at translation of Bill Schottstedaet's sndlib
 * # available at https://ccrma.stanford.edu/software/snd/sndlib/
 */
  __pyx_t_13 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_13) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  if (__pyx_m) {
    if (__pyx_d && stringtab_initialized) {
      __Pyx_AddTraceback("init pysndlib.generators", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    #if !CYTHON_USE_MODULE_STATE
    Py_CLEAR(__pyx_m);
    #else
    Py_DECREF(__pyx_m);
    if (pystate_addmodule_run) {
      PyObject *tp, *value, *tb;
      PyErr_Fetch(&tp, &value, &tb);
      PyState_RemoveModule(&__pyx_moduledef);
      PyErr_Restore(tp, value, tb);
    }
    #endif
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init pysndlib.generators");
  }
  __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
}
/* #### Code section: cleanup_globals ### */
/* #### Code section: cleanup_module ### */
/* #### Code section: main_method ### */
/* #### Code section: utility_code_pragmas ### */
#ifdef _MSC_VER
#pragma warning( push )
/* Warning 4127: conditional expression is constant
 * Cython uses constant conditional expressions to allow in inline functions to be optimized at
 * compile-time, so this warning is not useful
 */
#pragma warning( disable : 4127 )
#endif



/* #### Code section: utility_code_def ### */

/* --- 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

/* 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) {
    int result;
    PyObject *exc_type;
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *current_exception = tstate->current_exception;
    if (unlikely(!current_exception)) return 0;
    exc_type = (PyObject*) Py_TYPE(current_exception);
    if (exc_type == err) return 1;
#else
    exc_type = tstate->curexc_type;
    if (exc_type == err) return 1;
    if (unlikely(!exc_type)) return 0;
#endif
    #if CYTHON_AVOID_BORROWED_REFS
    Py_INCREF(exc_type);
    #endif
    if (unlikely(PyTuple_Check(err))) {
        result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
    } else {
        result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
    }
    #if CYTHON_AVOID_BORROWED_REFS
    Py_DECREF(exc_type);
    #endif
    return result;
}
#endif

/* PyErrFetchRestore */
#if CYTHON_FAST_THREAD_STATE
static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject *tmp_value;
    assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
    if (value) {
        #if CYTHON_COMPILING_IN_CPYTHON
        if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
        #endif
            PyException_SetTraceback(value, tb);
    }
    tmp_value = tstate->current_exception;
    tstate->current_exception = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
#else
    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);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
#if PY_VERSION_HEX >= 0x030C00A6
    PyObject* exc_value;
    exc_value = tstate->current_exception;
    tstate->current_exception = 0;
    *value = exc_value;
    *type = NULL;
    *tb = NULL;
    if (exc_value) {
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        #if CYTHON_COMPILING_IN_CPYTHON
        *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
        Py_XINCREF(*tb);
        #else
        *tb = PyException_GetTraceback(exc_value);
        #endif
    }
#else
    *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
}
#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

/* PyObjectGetAttrStrNoError */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        __Pyx_PyErr_Clear();
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
    PyObject *result;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
    return result;
#else
#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
        return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
    }
#endif
    result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
    if (unlikely(!result)) {
        __Pyx_PyObject_GetAttrStr_ClearAttributeError();
    }
    return result;
#endif
}

/* GetBuiltinName */
static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
    if (unlikely(!result) && !PyErr_Occurred()) {
        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;
}

/* Import */
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *module = 0;
    PyObject *empty_dict = 0;
    PyObject *empty_list = 0;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (unlikely(!py_import))
        goto bad;
    if (!from_list) {
        empty_list = PyList_New(0);
        if (unlikely(!empty_list))
            goto bad;
        from_list = empty_list;
    }
    #endif
    empty_dict = PyDict_New();
    if (unlikely(!empty_dict))
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.') != NULL) {
                module = PyImport_ImportModuleLevelObject(
                    name, __pyx_d, empty_dict, from_list, 1);
                if (unlikely(!module)) {
                    if (unlikely(!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 (unlikely(!py_level))
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, __pyx_d, empty_dict, from_list, level);
            #endif
        }
    }
bad:
    Py_XDECREF(empty_dict);
    Py_XDECREF(empty_list);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_import);
    #endif
    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)) {
        const char* module_name_str = 0;
        PyObject* module_name = 0;
        PyObject* module_dot = 0;
        PyObject* full_name = 0;
        PyErr_Clear();
        module_name_str = PyModule_GetName(module);
        if (unlikely(!module_name_str)) { goto modbad; }
        module_name = PyUnicode_FromString(module_name_str);
        if (unlikely(!module_name)) { goto modbad; }
        module_dot = PyUnicode_Concat(module_name, __pyx_kp_u_);
        if (unlikely(!module_dot)) { goto modbad; }
        full_name = PyUnicode_Concat(module_dot, name);
        if (unlikely(!full_name)) { goto modbad; }
        #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
        {
            PyObject *modules = PyImport_GetModuleDict();
            if (unlikely(!modules))
                goto modbad;
            value = PyObject_GetItem(modules, full_name);
        }
        #else
        value = PyImport_GetModule(full_name);
        #endif
      modbad:
        Py_XDECREF(full_name);
        Py_XDECREF(module_dot);
        Py_XDECREF(module_name);
    }
    if (unlikely(!value)) {
        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;
}

/* GetTopmostException */
#if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
static _PyErr_StackItem *
__Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
{
    _PyErr_StackItem *exc_info = tstate->exc_info;
    while ((exc_info->exc_value == NULL || exc_info->exc_value == 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 && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
    PyObject *exc_value = exc_info->exc_value;
    if (exc_value == NULL || exc_value == Py_None) {
        *value = NULL;
        *type = NULL;
        *tb = NULL;
    } else {
        *value = exc_value;
        Py_INCREF(*value);
        *type = (PyObject*) Py_TYPE(exc_value);
        Py_INCREF(*type);
        *tb = PyException_GetTraceback(exc_value);
    }
  #elif 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;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #else
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
  #endif
}
static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
  #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
    _PyErr_StackItem *exc_info = tstate->exc_info;
    PyObject *tmp_value = exc_info->exc_value;
    exc_info->exc_value = value;
    Py_XDECREF(tmp_value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
  #else
    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
}
#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 = NULL, *local_value, *local_tb = NULL;
#if CYTHON_FAST_THREAD_STATE
    PyObject *tmp_type, *tmp_value, *tmp_tb;
  #if PY_VERSION_HEX >= 0x030C00A6
    local_value = tstate->current_exception;
    tstate->current_exception = 0;
    if (likely(local_value)) {
        local_type = (PyObject*) Py_TYPE(local_value);
        Py_INCREF(local_type);
        local_tb = PyException_GetTraceback(local_value);
    }
  #else
    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;
  #endif
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
    if (unlikely(tstate->current_exception))
#elif 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;
      #if PY_VERSION_HEX >= 0x030B00a4
        tmp_value = exc_info->exc_value;
        exc_info->exc_value = local_value;
        tmp_type = NULL;
        tmp_tb = NULL;
        Py_XDECREF(local_type);
        Py_XDECREF(local_tb);
      #else
        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;
      #endif
    }
    #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;
}

/* ImportDottedModule */
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
    PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
    if (unlikely(PyErr_Occurred())) {
        PyErr_Clear();
    }
    if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) {
        partial_name = name;
    } else {
        slice = PySequence_GetSlice(parts_tuple, 0, count);
        if (unlikely(!slice))
            goto bad;
        sep = PyUnicode_FromStringAndSize(".", 1);
        if (unlikely(!sep))
            goto bad;
        partial_name = PyUnicode_Join(sep, slice);
    }
    PyErr_Format(
#if PY_MAJOR_VERSION < 3
        PyExc_ImportError,
        "No module named '%s'", PyString_AS_STRING(partial_name));
#else
#if PY_VERSION_HEX >= 0x030600B1
        PyExc_ModuleNotFoundError,
#else
        PyExc_ImportError,
#endif
        "No module named '%U'", partial_name);
#endif
bad:
    Py_XDECREF(sep);
    Py_XDECREF(slice);
    Py_XDECREF(partial_name);
    return NULL;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
    PyObject *imported_module;
#if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM  < 0x07030400)
    PyObject *modules = PyImport_GetModuleDict();
    if (unlikely(!modules))
        return NULL;
    imported_module = __Pyx_PyDict_GetItemStr(modules, name);
    Py_XINCREF(imported_module);
#else
    imported_module = PyImport_GetModule(name);
#endif
    return imported_module;
}
#endif
#if PY_MAJOR_VERSION >= 3
static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
    Py_ssize_t i, nparts;
    nparts = PyTuple_GET_SIZE(parts_tuple);
    for (i=1; i < nparts && module; i++) {
        PyObject *part, *submodule;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        part = PyTuple_GET_ITEM(parts_tuple, i);
#else
        part = PySequence_ITEM(parts_tuple, i);
#endif
        submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
#if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
        Py_DECREF(part);
#endif
        Py_DECREF(module);
        module = submodule;
    }
    if (unlikely(!module)) {
        return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
    }
    return module;
}
#endif
static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if PY_MAJOR_VERSION < 3
    PyObject *module, *from_list, *star = __pyx_n_s__2;
    CYTHON_UNUSED_VAR(parts_tuple);
    from_list = PyList_New(1);
    if (unlikely(!from_list))
        return NULL;
    Py_INCREF(star);
    PyList_SET_ITEM(from_list, 0, star);
    module = __Pyx_Import(name, from_list, 0);
    Py_DECREF(from_list);
    return module;
#else
    PyObject *imported_module;
    PyObject *module = __Pyx_Import(name, NULL, 0);
    if (!parts_tuple || unlikely(!module))
        return module;
    imported_module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(imported_module)) {
        Py_DECREF(module);
        return imported_module;
    }
    PyErr_Clear();
    return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
#endif
}
static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1
    PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
    if (likely(module)) {
        PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec);
        if (likely(spec)) {
            PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing);
            if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
                Py_DECREF(spec);
                spec = NULL;
            }
            Py_XDECREF(unsafe);
        }
        if (likely(!spec)) {
            PyErr_Clear();
            return module;
        }
        Py_DECREF(spec);
        Py_DECREF(module);
    } else if (PyErr_Occurred()) {
        PyErr_Clear();
    }
#endif
    return __Pyx__ImportDottedModule(name, parts_tuple);
}

/* PyFunctionFastCall */
#if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
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;
}
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_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) {
        return NULL;
    }
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
        return NULL;
    }
    #endif
    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

/* PyObjectCall */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = Py_TYPE(func)->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    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 = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
    self = __Pyx_CyOrPyCFunction_GET_SELF(func);
    #if PY_MAJOR_VERSION < 3
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    #else
    if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
        return NULL;
    #endif
    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

/* PyObjectFastCall */
#if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) {
    PyObject *argstuple;
    PyObject *result = 0;
    size_t i;
    argstuple = PyTuple_New((Py_ssize_t)nargs);
    if (unlikely(!argstuple)) return NULL;
    for (i = 0; i < nargs; i++) {
        Py_INCREF(args[i]);
        if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad;
    }
    result = __Pyx_PyObject_Call(func, argstuple, kwargs);
  bad:
    Py_DECREF(argstuple);
    return result;
}
#endif
static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) {
    Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
#if CYTHON_COMPILING_IN_CPYTHON
    if (nargs == 0 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
            return __Pyx_PyObject_CallMethO(func, NULL);
    }
    else if (nargs == 1 && kwargs == NULL) {
        if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
            return __Pyx_PyObject_CallMethO(func, args[0]);
    }
#endif
    #if PY_VERSION_HEX < 0x030800B1
    #if CYTHON_FAST_PYCCALL
    if (PyCFunction_Check(func)) {
        if (kwargs) {
            return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
        } else {
            return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
        }
    }
    #if PY_VERSION_HEX >= 0x030700A1
    if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
        return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
    }
    #endif
    #endif
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(func)) {
        return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
    }
    #endif
    #endif
    if (kwargs == NULL) {
        #if CYTHON_VECTORCALL
        #if PY_VERSION_HEX < 0x03090000
        vectorcallfunc f = _PyVectorcall_Function(func);
        #else
        vectorcallfunc f = PyVectorcall_Function(func);
        #endif
        if (f) {
            return f(func, args, (size_t)nargs, NULL);
        }
        #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
        if (__Pyx_CyFunction_CheckExact(func)) {
            __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
            if (f) return f(func, args, (size_t)nargs, NULL);
        }
        #endif
    }
    if (nargs == 0) {
        return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs);
    }
    #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
    #else
    return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
    #endif
}

/* TupleAndListFromArray */
#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
    PyObject *v;
    Py_ssize_t i;
    for (i = 0; i < length; i++) {
        v = dest[i] = src[i];
        Py_INCREF(v);
    }
}
static CYTHON_INLINE PyObject *
__Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        Py_INCREF(__pyx_empty_tuple);
        return __pyx_empty_tuple;
    }
    res = PyTuple_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
    return res;
}
static CYTHON_INLINE PyObject *
__Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
{
    PyObject *res;
    if (n <= 0) {
        return PyList_New(0);
    }
    res = PyList_New(n);
    if (unlikely(res == NULL)) return NULL;
    __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
    return res;
}
#endif

/* BytesEquals */
static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result;
#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
            Py_hash_t hash1, hash2;
            hash1 = ((PyBytesObject*)s1)->ob_shash;
            hash2 = ((PyBytesObject*)s2)->ob_shash;
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                return (equals == Py_NE);
            }
#endif
            result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

/* UnicodeEquals */
static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
#if CYTHON_USE_UNICODE_INTERNALS
        {
            Py_hash_t hash1, hash2;
        #if CYTHON_PEP393_ENABLED
            hash1 = ((PyASCIIObject*)s1)->hash;
            hash2 = ((PyASCIIObject*)s2)->hash;
        #else
            hash1 = ((PyUnicodeObject*)s1)->hash;
            hash2 = ((PyUnicodeObject*)s2)->hash;
        #endif
            if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
                goto return_ne;
            }
        }
#endif
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        #if PY_MAJOR_VERSION < 3
        Py_XDECREF(owned_ref);
        #endif
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

/* fastcall */
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
{
    Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
    for (i = 0; i < n; i++)
    {
        if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
    }
    for (i = 0; i < n; i++)
    {
        int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
        if (unlikely(eq != 0)) {
            if (unlikely(eq < 0)) return NULL;
            return kwvalues[i];
        }
    }
    return NULL;
}
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
    Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
    PyObject *dict;
    dict = PyDict_New();
    if (unlikely(!dict))
        return NULL;
    for (i=0; i<nkwargs; i++) {
        PyObject *key = PyTuple_GET_ITEM(kwnames, i);
        if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
            goto bad;
    }
    return dict;
bad:
    Py_DECREF(dict);
    return NULL;
}
#endif
#endif

/* RaiseDoubleKeywords */
static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

/* ParseKeywords */
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject *const *kwvalues,
    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;
    int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds));
    while (1) {
        Py_XDECREF(key); key = NULL;
        Py_XDECREF(value); value = NULL;
        if (kwds_is_tuple) {
            Py_ssize_t size;
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(kwds);
#else
            size = PyTuple_Size(kwds);
            if (size < 0) goto bad;
#endif
            if (pos >= size) break;
#if CYTHON_AVOID_BORROWED_REFS
            key = __Pyx_PySequence_ITEM(kwds, pos);
            if (!key) goto bad;
#elif CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kwds, pos);
#else
            key = PyTuple_GetItem(kwds, pos);
            if (!key) goto bad;
#endif
            value = kwvalues[pos];
            pos++;
        }
        else
        {
            if (!PyDict_Next(kwds, &pos, &key, &value)) break;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(key);
#endif
        }
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
#if CYTHON_AVOID_BORROWED_REFS
            Py_INCREF(value);
            Py_DECREF(key);
#endif
            key = NULL;
            value = NULL;
            continue;
        }
#if !CYTHON_AVOID_BORROWED_REFS
        Py_INCREF(key);
#endif
        Py_INCREF(value);
        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;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    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 = (
                #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;
#if CYTHON_AVOID_BORROWED_REFS
                    value = NULL;
#endif
                    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;
        }
    }
    Py_XDECREF(key);
    Py_XDECREF(value);
    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:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    Py_XDECREF(key);
    Py_XDECREF(value);
    return -1;
}

/* RaiseArgTupleInvalid */
static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

/* FixUpExtensionType */
#if CYTHON_USE_TYPE_SPECS
static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
#if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    CYTHON_UNUSED_VAR(spec);
    CYTHON_UNUSED_VAR(type);
#else
    const PyType_Slot *slot = spec->slots;
    while (slot && slot->slot && slot->slot != Py_tp_members)
        slot++;
    if (slot && slot->slot == Py_tp_members) {
        int changed = 0;
#if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
        const
#endif
            PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
        while (memb && memb->name) {
            if (memb->name[0] == '_' && memb->name[1] == '_') {
#if PY_VERSION_HEX < 0x030900b1
                if (strcmp(memb->name, "__weaklistoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_weaklistoffset = memb->offset;
                    changed = 1;
                }
                else if (strcmp(memb->name, "__dictoffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
                    type->tp_dictoffset = memb->offset;
                    changed = 1;
                }
#if CYTHON_METH_FASTCALL
                else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
                    assert(memb->type == T_PYSSIZET);
                    assert(memb->flags == READONLY);
#if PY_VERSION_HEX >= 0x030800b4
                    type->tp_vectorcall_offset = memb->offset;
#else
                    type->tp_print = (printfunc) memb->offset;
#endif
                    changed = 1;
                }
#endif
#else
                if ((0));
#endif
#if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
                else if (strcmp(memb->name, "__module__") == 0) {
                    PyObject *descr;
                    assert(memb->type == T_OBJECT);
                    assert(memb->flags == 0 || memb->flags == READONLY);
                    descr = PyDescr_NewMember(type, memb);
                    if (unlikely(!descr))
                        return -1;
                    if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
                        Py_DECREF(descr);
                        return -1;
                    }
                    Py_DECREF(descr);
                    changed = 1;
                }
#endif
            }
            memb++;
        }
        if (changed)
            PyType_Modified(type);
    }
#endif
    return 0;
}
#endif

/* FetchSharedCythonModule */
static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
    return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
}

/* FetchCommonType */
static int __Pyx_VerifyCachedType(PyObject *cached_type,
                               const char *name,
                               Py_ssize_t basicsize,
                               Py_ssize_t expected_basicsize) {
    if (!PyType_Check(cached_type)) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s is not a type object", name);
        return -1;
    }
    if (basicsize != expected_basicsize) {
        PyErr_Format(PyExc_TypeError,
            "Shared Cython type %.200s has the wrong size, try recompiling",
            name);
        return -1;
    }
    return 0;
}
#if !CYTHON_USE_TYPE_SPECS
static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
    PyObject* abi_module;
    const char* object_name;
    PyTypeObject *cached_type = NULL;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    object_name = strrchr(type->tp_name, '.');
    object_name = object_name ? object_name+1 : type->tp_name;
    cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        if (__Pyx_VerifyCachedType(
              (PyObject *)cached_type,
              object_name,
              cached_type->tp_basicsize,
              type->tp_basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    if (PyType_Ready(type) < 0) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
        goto bad;
    Py_INCREF(type);
    cached_type = type;
done:
    Py_DECREF(abi_module);
    return cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#else
static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
    PyObject *abi_module, *cached_type = NULL;
    const char* object_name = strrchr(spec->name, '.');
    object_name = object_name ? object_name+1 : spec->name;
    abi_module = __Pyx_FetchSharedCythonABIModule();
    if (!abi_module) return NULL;
    cached_type = PyObject_GetAttrString(abi_module, object_name);
    if (cached_type) {
        Py_ssize_t basicsize;
#if CYTHON_COMPILING_IN_LIMITED_API
        PyObject *py_basicsize;
        py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
        if (unlikely(!py_basicsize)) goto bad;
        basicsize = PyLong_AsSsize_t(py_basicsize);
        Py_DECREF(py_basicsize);
        py_basicsize = 0;
        if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
#else
        basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
#endif
        if (__Pyx_VerifyCachedType(
              cached_type,
              object_name,
              basicsize,
              spec->basicsize) < 0) {
            goto bad;
        }
        goto done;
    }
    if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
    PyErr_Clear();
    CYTHON_UNUSED_VAR(module);
    cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
    if (unlikely(!cached_type)) goto bad;
    if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
    if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
done:
    Py_DECREF(abi_module);
    assert(cached_type == NULL || PyType_Check(cached_type));
    return (PyTypeObject *) cached_type;
bad:
    Py_XDECREF(cached_type);
    cached_type = NULL;
    goto done;
}
#endif

/* PyVectorcallFastCallDict */
#if CYTHON_METH_FASTCALL
static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    PyObject *res = NULL;
    PyObject *kwnames;
    PyObject **newargs;
    PyObject **kwvalues;
    Py_ssize_t i, pos;
    size_t j;
    PyObject *key, *value;
    unsigned long keys_are_strings;
    Py_ssize_t nkw = PyDict_GET_SIZE(kw);
    newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
    if (unlikely(newargs == NULL)) {
        PyErr_NoMemory();
        return NULL;
    }
    for (j = 0; j < nargs; j++) newargs[j] = args[j];
    kwnames = PyTuple_New(nkw);
    if (unlikely(kwnames == NULL)) {
        PyMem_Free(newargs);
        return NULL;
    }
    kwvalues = newargs + nargs;
    pos = i = 0;
    keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
    while (PyDict_Next(kw, &pos, &key, &value)) {
        keys_are_strings &= Py_TYPE(key)->tp_flags;
        Py_INCREF(key);
        Py_INCREF(value);
        PyTuple_SET_ITEM(kwnames, i, key);
        kwvalues[i] = value;
        i++;
    }
    if (unlikely(!keys_are_strings)) {
        PyErr_SetString(PyExc_TypeError, "keywords must be strings");
        goto cleanup;
    }
    res = vc(func, newargs, nargs, kwnames);
cleanup:
    Py_DECREF(kwnames);
    for (i = 0; i < nkw; i++)
        Py_DECREF(kwvalues[i]);
    PyMem_Free(newargs);
    return res;
}
static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
{
    if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
        return vc(func, args, nargs, NULL);
    }
    return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
}
#endif

/* CythonFunctionShared */
#if CYTHON_COMPILING_IN_LIMITED_API
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    if (__Pyx_CyFunction_Check(func)) {
        return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
    } else if (PyCFunction_Check(func)) {
        return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
    }
    return 0;
}
#else
static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
    return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
}
#endif
static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    __Pyx_Py_XDECREF_SET(
        __Pyx_CyFunction_GetClassObj(f),
            ((classobj) ? __Pyx_NewRef(classobj) : NULL));
#else
    __Pyx_Py_XDECREF_SET(
        ((PyCMethodObject *) (f))->mm_class,
        (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
#endif
}
static PyObject *
__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
{
    CYTHON_UNUSED_VAR(closure);
    if (unlikely(op->func_doc == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
        if (unlikely(!op->func_doc)) return NULL;
#else
        if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
#if PY_MAJOR_VERSION >= 3
            op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#else
            op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
#endif
            if (unlikely(op->func_doc == NULL))
                return NULL;
        } else {
            Py_INCREF(Py_None);
            return Py_None;
        }
#endif
    }
    Py_INCREF(op->func_doc);
    return op->func_doc;
}
static int
__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (value == NULL) {
        value = Py_None;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_doc, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    if (unlikely(op->func_name == NULL)) {
#if CYTHON_COMPILING_IN_LIMITED_API
        op->func_name = PyObject_GetAttrString(op->func, "__name__");
#elif PY_MAJOR_VERSION >= 3
        op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
#else
        op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->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, void *context)
{
    CYTHON_UNUSED_VAR(context);
#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;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_name, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_qualname);
    return op->func_qualname;
}
static int
__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
{
    CYTHON_UNUSED_VAR(context);
#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;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_qualname, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(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, void *context)
{
    CYTHON_UNUSED_VAR(context);
    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;
    }
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_dict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(op->func_globals);
    return op->func_globals;
}
static PyObject *
__Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
{
    CYTHON_UNUSED_VAR(op);
    CYTHON_UNUSED_VAR(context);
    Py_INCREF(Py_None);
    return Py_None;
}
static PyObject *
__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
{
    PyObject* result = (op->func_code) ? op->func_code : Py_None;
    CYTHON_UNUSED_VAR(context);
    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 = __Pyx_PySequence_ITEM(res, 0);
    if (unlikely(!op->defaults_tuple)) result = -1;
    else {
        op->defaults_kwdict = __Pyx_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, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__defaults__ must be set to a tuple object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_tuple;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__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, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value) {
        value = Py_None;
    } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__kwdefaults__ must be set to a dict object");
        return -1;
    }
    PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
                 "currently affect the values used in function calls", 1);
    Py_INCREF(value);
    __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->defaults_kwdict;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        if (op->defaults_getter) {
            if (unlikely(__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, void *context) {
    CYTHON_UNUSED_VAR(context);
    if (!value || value == Py_None) {
        value = NULL;
    } else if (unlikely(!PyDict_Check(value))) {
        PyErr_SetString(PyExc_TypeError,
                        "__annotations__ must be set to a dict object");
        return -1;
    }
    Py_XINCREF(value);
    __Pyx_Py_XDECREF_SET(op->func_annotations, value);
    return 0;
}
static PyObject *
__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
    PyObject* result = op->func_annotations;
    CYTHON_UNUSED_VAR(context);
    if (unlikely(!result)) {
        result = PyDict_New();
        if (unlikely(!result)) return NULL;
        op->func_annotations = result;
    }
    Py_INCREF(result);
    return result;
}
static PyObject *
__Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
    int is_coroutine;
    CYTHON_UNUSED_VAR(context);
    if (op->func_is_coroutine) {
        return __Pyx_NewRef(op->func_is_coroutine);
    }
    is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
#if PY_VERSION_HEX >= 0x03050000
    if (is_coroutine) {
        PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
        fromlist = PyList_New(1);
        if (unlikely(!fromlist)) return NULL;
        Py_INCREF(marker);
#if CYTHON_ASSUME_SAFE_MACROS
        PyList_SET_ITEM(fromlist, 0, marker);
#else
        if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
            Py_DECREF(marker);
            Py_DECREF(fromlist);
            return NULL;
        }
#endif
        module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
        Py_DECREF(fromlist);
        if (unlikely(!module)) goto ignore;
        op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
        Py_DECREF(module);
        if (likely(op->func_is_coroutine)) {
            return __Pyx_NewRef(op->func_is_coroutine);
        }
ignore:
        PyErr_Clear();
    }
#endif
    op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
    return __Pyx_NewRef(op->func_is_coroutine);
}
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *
__Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_GetAttrString(op->func, "__module__");
}
static int
__Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
    CYTHON_UNUSED_VAR(context);
    return PyObject_SetAttrString(op->func, "__module__", value);
}
#endif
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 *) "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},
    {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
#if CYTHON_COMPILING_IN_LIMITED_API
    {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
#endif
    {0, 0, 0, 0, 0}
};
static PyMemberDef __pyx_CyFunction_members[] = {
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
#endif
#if CYTHON_USE_TYPE_SPECS
    {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
#if CYTHON_METH_FASTCALL
#if CYTHON_BACKPORT_VECTORCALL
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
#else
#if !CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
#endif
#endif
#endif
#if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
#else
    {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
#endif
#endif
    {0, 0, 0,  0, 0}
};
static PyObject *
__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
{
    CYTHON_UNUSED_VAR(args);
#if PY_MAJOR_VERSION >= 3
    Py_INCREF(m->func_qualname);
    return m->func_qualname;
#else
    return PyString_FromString(((PyCFunctionObject*)m)->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 || CYTHON_COMPILING_IN_LIMITED_API
#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
#else
#define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->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 !CYTHON_COMPILING_IN_LIMITED_API
    PyCFunctionObject *cf = (PyCFunctionObject*) op;
#endif
    if (unlikely(op == NULL))
        return NULL;
#if CYTHON_COMPILING_IN_LIMITED_API
    op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
    if (unlikely(!op->func)) return NULL;
#endif
    op->flags = flags;
    __Pyx_CyFunction_weakreflist(op) = NULL;
#if !CYTHON_COMPILING_IN_LIMITED_API
    cf->m_ml = ml;
    cf->m_self = (PyObject *) op;
#endif
    Py_XINCREF(closure);
    op->func_closure = closure;
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_XINCREF(module);
    cf->m_module = module;
#endif
    op->func_dict = NULL;
    op->func_name = NULL;
    Py_INCREF(qualname);
    op->func_qualname = qualname;
    op->func_doc = NULL;
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
    op->func_classobj = NULL;
#else
    ((PyCMethodObject*)op)->mm_class = NULL;
#endif
    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;
    op->func_is_coroutine = NULL;
#if CYTHON_METH_FASTCALL
    switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
    case METH_NOARGS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
        break;
    case METH_O:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
        break;
    case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
        break;
    case METH_FASTCALL | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
        break;
    case METH_VARARGS | METH_KEYWORDS:
        __Pyx_CyFunction_func_vectorcall(op) = NULL;
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        Py_DECREF(op);
        return NULL;
    }
#endif
    return (PyObject *) op;
}
static int
__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
{
    Py_CLEAR(m->func_closure);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_CLEAR(m->func);
#else
    Py_CLEAR(((PyCFunctionObject*)m)->m_module);
#endif
    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);
#if !CYTHON_COMPILING_IN_LIMITED_API
#if PY_VERSION_HEX < 0x030900B1
    Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
#else
    {
        PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
        ((PyCMethodObject *) (m))->mm_class = NULL;
        Py_XDECREF(cls);
    }
#endif
#endif
    Py_CLEAR(m->defaults_tuple);
    Py_CLEAR(m->defaults_kwdict);
    Py_CLEAR(m->func_annotations);
    Py_CLEAR(m->func_is_coroutine);
    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);
    __Pyx_PyHeapTypeObject_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);
#if CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(m->func);
#else
    Py_VISIT(((PyCFunctionObject*)m)->m_module);
#endif
    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);
#if !CYTHON_COMPILING_IN_LIMITED_API
    Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
#endif
    Py_VISIT(m->defaults_tuple);
    Py_VISIT(m->defaults_kwdict);
    Py_VISIT(m->func_is_coroutine);
    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_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) {
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
    PyObject *py_name = NULL;
    PyCFunction meth;
    int flags;
    meth = PyCFunction_GetFunction(f);
    if (unlikely(!meth)) return NULL;
    flags = PyCFunction_GetFlags(f);
    if (unlikely(flags < 0)) return NULL;
#else
    PyCFunctionObject* f = (PyCFunctionObject*)func;
    PyCFunction meth = f->m_ml->ml_meth;
    int flags = f->m_ml->ml_flags;
#endif
    Py_ssize_t size;
    switch (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)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 0))
                return (*meth)(self, NULL);
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    case METH_O:
        if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
#if CYTHON_ASSUME_SAFE_MACROS
            size = PyTuple_GET_SIZE(arg);
#else
            size = PyTuple_Size(arg);
            if (unlikely(size < 0)) return NULL;
#endif
            if (likely(size == 1)) {
                PyObject *result, *arg0;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                arg0 = PyTuple_GET_ITEM(arg, 0);
                #else
                arg0 = __Pyx_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;
            }
#if CYTHON_COMPILING_IN_LIMITED_API
            py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
            if (!py_name) return NULL;
            PyErr_Format(PyExc_TypeError,
                "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                py_name, size);
            Py_DECREF(py_name);
#else
            PyErr_Format(PyExc_TypeError,
                "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
                f->m_ml->ml_name, size);
#endif
            return NULL;
        }
        break;
    default:
        PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
        return NULL;
    }
#if CYTHON_COMPILING_IN_LIMITED_API
    py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
    if (!py_name) return NULL;
    PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
                 py_name);
    Py_DECREF(py_name);
#else
    PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
                 f->m_ml->ml_name);
#endif
    return NULL;
}
static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *self, *result;
#if CYTHON_COMPILING_IN_LIMITED_API
    self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
    if (unlikely(!self) && PyErr_Occurred()) return NULL;
#else
    self = ((PyCFunctionObject*)func)->m_self;
#endif
    result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
    return result;
}
static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
    PyObject *result;
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
#if CYTHON_METH_FASTCALL
     __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
    if (vc) {
#if CYTHON_ASSUME_SAFE_MACROS
        return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
#else
        (void) &__Pyx_PyVectorcall_FastCallDict;
        return PyVectorcall_Call(func, args, kw);
#endif
    }
#endif
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        Py_ssize_t argc;
        PyObject *new_args;
        PyObject *self;
#if CYTHON_ASSUME_SAFE_MACROS
        argc = PyTuple_GET_SIZE(args);
#else
        argc = PyTuple_Size(args);
        if (unlikely(!argc) < 0) return NULL;
#endif
        new_args = PyTuple_GetSlice(args, 1, argc);
        if (unlikely(!new_args))
            return NULL;
        self = PyTuple_GetItem(args, 0);
        if (unlikely(!self)) {
            Py_DECREF(new_args);
#if PY_MAJOR_VERSION > 2
            PyErr_Format(PyExc_TypeError,
                         "unbound method %.200S() needs an argument",
                         cyfunc->func_qualname);
#else
            PyErr_SetString(PyExc_TypeError,
                            "unbound method needs an argument");
#endif
            return NULL;
        }
        result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
        Py_DECREF(new_args);
    } else {
        result = __Pyx_CyFunction_Call(func, args, kw);
    }
    return result;
}
#if CYTHON_METH_FASTCALL
static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
{
    int ret = 0;
    if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
        if (unlikely(nargs < 1)) {
            PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
                         ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
            return -1;
        }
        ret = 1;
    }
    if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
        PyErr_Format(PyExc_TypeError,
                     "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
        return -1;
    }
    return ret;
}
static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 0)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, NULL);
}
static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    if (unlikely(nargs != 1)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
            def->ml_name, nargs);
        return NULL;
    }
    return def->ml_meth(self, args[0]);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
}
static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
{
    __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
    PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
    PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
#if CYTHON_BACKPORT_VECTORCALL
    Py_ssize_t nargs = (Py_ssize_t)nargsf;
#else
    Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
#endif
    PyObject *self;
    switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
    case 1:
        self = args[0];
        args += 1;
        nargs -= 1;
        break;
    case 0:
        self = ((PyCFunctionObject*)cyfunc)->m_self;
        break;
    default:
        return NULL;
    }
    return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
}
#endif
#if CYTHON_USE_TYPE_SPECS
static PyType_Slot __pyx_CyFunctionType_slots[] = {
    {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
    {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
    {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
    {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
    {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
    {Py_tp_methods, (void *)__pyx_CyFunction_methods},
    {Py_tp_members, (void *)__pyx_CyFunction_members},
    {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
    {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
    {0, 0},
};
static PyType_Spec __pyx_CyFunctionType_spec = {
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    __pyx_CyFunctionType_slots
};
#else
static PyTypeObject __pyx_CyFunctionType_type = {
    PyVarObject_HEAD_INIT(0, 0)
    __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
    sizeof(__pyx_CyFunctionObject),
    0,
    (destructor) __Pyx_CyFunction_dealloc,
#if !CYTHON_METH_FASTCALL
    0,
#elif CYTHON_BACKPORT_VECTORCALL
    (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
#else
    offsetof(PyCFunctionObject, vectorcall),
#endif
    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,
#ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
    Py_TPFLAGS_METHOD_DESCRIPTOR |
#endif
#if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
    _Py_TPFLAGS_HAVE_VECTORCALL |
#endif
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
    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_PyMethod_New,
    0,
    offsetof(__pyx_CyFunctionObject, func_dict),
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
#if PY_VERSION_HEX >= 0x030400a1
    0,
#endif
#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
    0,
#endif
#if __PYX_NEED_TP_PRINT_SLOT
    0,
#endif
#if PY_VERSION_HEX >= 0x030C0000
    0,
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
    0,
#endif
};
#endif
static int __pyx_CyFunction_init(PyObject *module) {
#if CYTHON_USE_TYPE_SPECS
    __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
#else
    CYTHON_UNUSED_VAR(module);
    __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
#endif
    if (unlikely(__pyx_CyFunctionType == NULL)) {
        return -1;
    }
    return 0;
}
static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults = PyObject_Malloc(size);
    if (unlikely(!m->defaults))
        return PyErr_NoMemory();
    memset(m->defaults, 0, size);
    m->defaults_pyobjects = pyobjects;
    m->defaults_size = size;
    return m->defaults;
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_tuple = tuple;
    Py_INCREF(tuple);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->defaults_kwdict = dict;
    Py_INCREF(dict);
}
static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
    __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
    m->func_annotations = dict;
    Py_INCREF(dict);
}

/* CythonFunction */
static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
                                      PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
    PyObject *op = __Pyx_CyFunction_Init(
        PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
        ml, flags, qualname, closure, module, globals, code
    );
    if (likely(op)) {
        PyObject_GC_Track(op);
    }
    return op;
}

/* RaiseException */
#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    __Pyx_PyThreadState_declare
    CYTHON_UNUSED_VAR(cause);
    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 PY_VERSION_HEX >= 0x030C00A6
        PyException_SetTraceback(value, tb);
      #elif CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

/* 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

/* KeywordStringCheck */
static int __Pyx_CheckKeywordStrings(
    PyObject *kw,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
        Py_ssize_t kwsize;
#if CYTHON_ASSUME_SAFE_MACROS
        kwsize = PyTuple_GET_SIZE(kw);
#else
        kwsize = PyTuple_Size(kw);
        if (kwsize < 0) return 0;
#endif
        if (unlikely(kwsize == 0))
            return 1;
        if (!kw_allowed) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, 0);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            goto invalid_keyword;
        }
#if PY_VERSION_HEX < 0x03090000
        for (pos = 0; pos < kwsize; pos++) {
#if CYTHON_ASSUME_SAFE_MACROS
            key = PyTuple_GET_ITEM(kw, pos);
#else
            key = PyTuple_GetItem(kw, pos);
            if (!key) return 0;
#endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
        }
#endif
        return 1;
    }
    while (PyDict_Next(kw, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if (!kw_allowed && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    #if PY_MAJOR_VERSION < 3
    PyErr_Format(PyExc_TypeError,
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
    PyErr_Format(PyExc_TypeError,
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

/* GetAttr3 */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
        return NULL;
    __Pyx_PyErr_Clear();
    Py_INCREF(d);
    return d;
}
#endif
static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
    PyObject *r;
#if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
    int res = PyObject_GetOptionalAttr(o, n, &r);
    return (res != 0) ? r : __Pyx_NewRef(d);
#else
  #if CYTHON_USE_TYPE_SLOTS
    if (likely(PyString_Check(n))) {
        r = __Pyx_PyObject_GetAttrStrNoError(o, n);
        if (unlikely(!r) && likely(!PyErr_Occurred())) {
            r = __Pyx_NewRef(d);
        }
        return r;
    }
  #endif
    r = PyObject_GetAttr(o, n);
    return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
#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 && PY_VERSION_HEX < 0x030d0000
    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;
    }
#elif CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(!__pyx_m)) {
        return NULL;
    }
    result = PyObject_GetAttr(__pyx_m, name);
    if (likely(result)) {
        return result;
    }
#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);
}

/* RaiseUnexpectedTypeError */
static int
__Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
{
    __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
                 expected, obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* ArgTypeTest */
static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
{
    __Pyx_TypeName type_name;
    __Pyx_TypeName obj_type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    else if (exact) {
        #if PY_MAJOR_VERSION == 2
        if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(__Pyx_TypeCheck(obj, type))) return 1;
    }
    type_name = __Pyx_PyType_GetName(type);
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
        ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return 0;
}

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static int __Pyx_PyFloat_BoolEqObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double b = floatval;
    double a;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (op1 == op2) {
        return 1;
    }
    if (likely(PyFloat_CheckExact(op1))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        a = __pyx_PyFloat_AsDouble(op1);
#else
        a = PyFloat_AS_DOUBLE(op1);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        a = (double) PyInt_AS_LONG(op1);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op1))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op1)) {
            a = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op1)) {
            a = (double) __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    return __Pyx_PyObject_IsTrueAndDecref(
                        PyFloat_Type.tp_richcompare(op2, op1, Py_EQ));
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return __Pyx_PyObject_IsTrueAndDecref(
            PyObject_RichCompare(op1, op2, Py_EQ));
    }
        if (a == b) {
            return 1;
        } else {
            return 0;
        }
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_TrueDivideObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        
            if (8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53))) {
                return PyFloat_FromDouble((double)a / (double)b);
            }
            return PyInt_Type.tp_as_number->nb_true_divide(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT && 1 * PyLong_SHIFT < 53) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT && 2 * PyLong_SHIFT < 53) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT && 3 * PyLong_SHIFT < 53) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
            }
        }
                if ((8 * sizeof(long) <= 53 || likely(labs(a) <= ((PY_LONG_LONG)1 << 53)))
                        || __Pyx_PyLong_DigitCount(op1) <= 52 / PyLong_SHIFT) {
                    return PyFloat_FromDouble((double)a / (double)b);
                }
                return PyLong_Type.tp_as_number->nb_true_divide(op1, op2);
            return PyLong_FromLong(x);
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("divide", return NULL)
            result = ((double)a) / (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        const long a = intval;
        long x;
        long b = PyInt_AS_LONG(op2);
        
            x = (long)((unsigned long)a + (unsigned long)b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op2))) {
        const long a = intval;
        long b, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG lla = intval;
        PY_LONG_LONG llb, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op2))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op2))) {
            b = __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op2)) {
        const long a = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double b = __pyx_PyFloat_AsDouble(op2);
#else
        double b = PyFloat_AS_DOUBLE(op2);
#endif
            double result;
            
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* RaiseClosureNameError */
static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) {
    PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname);
}

/* PyIntCompare */
static CYTHON_INLINE int __Pyx_PyInt_BoolEqObjC(PyObject *op1, PyObject *op2, long intval, long inplace) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_UNUSED_VAR(inplace);
    if (op1 == op2) {
        return 1;
    }
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        return (a == b);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        int unequal;
        unsigned long uintval;
        Py_ssize_t size = __Pyx_PyLong_DigitCount(op1);
        const digit* digits = __Pyx_PyLong_Digits(op1);
        if (intval == 0) {
            return (__Pyx_PyLong_IsZero(op1) == 1);
        } else if (intval < 0) {
            if (__Pyx_PyLong_IsNonNeg(op1))
                return 0;
            intval = -intval;
        } else {
            if (__Pyx_PyLong_IsNeg(op1))
                return 0;
        }
        uintval = (unsigned long) intval;
#if PyLong_SHIFT * 4 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 4)) {
            unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 3 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 3)) {
            unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 2 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 2)) {
            unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
#if PyLong_SHIFT * 1 < SIZEOF_LONG*8
        if (uintval >> (PyLong_SHIFT * 1)) {
            unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK))
                 | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK));
        } else
#endif
            unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK));
        return (unequal == 0);
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
        return ((double)a == (double)b);
    }
    return __Pyx_PyObject_IsTrueAndDecref(
        PyObject_RichCompare(op1, op2, Py_EQ));
}

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double b = floatval;
    double a, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op1))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        a = __pyx_PyFloat_AsDouble(op1);
#else
        a = PyFloat_AS_DOUBLE(op1);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        a = (double) PyInt_AS_LONG(op1);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op1))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op1)) {
            a = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op1)) {
            a = (double) __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    a = PyLong_AsDouble(op1);
                    if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
    }
        PyFPE_START_PROTECT("add", return NULL)
        result = a + b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        const long a = intval;
        long b = PyInt_AS_LONG(op2);
        
#ifdef HAVE_LONG_LONG
            if (sizeof(PY_LONG_LONG) > sizeof(long)) {
                PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b;
                return (result >= LONG_MIN && result <= LONG_MAX) ?
                    PyInt_FromLong((long)result) : PyLong_FromLongLong(result);
            }
#endif
#if CYTHON_USE_TYPE_SLOTS
            return PyInt_Type.tp_as_number->nb_multiply(op1, op2);
#else
            return PyNumber_Multiply(op1, op2);
#endif
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op2))) {
        const long a = intval;
        long b, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG lla = intval;
        PY_LONG_LONG llb, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op2))) {
            return __Pyx_NewRef(op2);
        }
        if (likely(__Pyx_PyLong_IsCompact(op2))) {
            b = __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            }
        }
                CYTHON_UNUSED_VAR(a);
                CYTHON_UNUSED_VAR(b);
                #ifdef HAVE_LONG_LONG
                llb = b;
                goto long_long;
                #else
                return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
                #endif
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op2)) {
        const long a = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double b = __pyx_PyFloat_AsDouble(op2);
#else
        double b = PyFloat_AS_DOUBLE(op2);
#endif
            double result;
            
            PyFPE_START_PROTECT("multiply", return NULL)
            result = ((double)a) * (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#endif

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_TrueDivideCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double a = floatval;
    double b, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op2))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        b = __pyx_PyFloat_AsDouble(op2);
#else
        b = PyFloat_AS_DOUBLE(op2);
#endif
        if (unlikely(zerodivision_check && ((b) == 0.0))) { PyErr_SetString(PyExc_ZeroDivisionError, "float division by zero"); return NULL;}
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        b = (double) PyInt_AS_LONG(op2);
        if (unlikely(zerodivision_check && ((b) == 0.0))) { PyErr_SetString(PyExc_ZeroDivisionError, "float division by zero"); return NULL;}
    } else
    #endif
    if (likely(PyLong_CheckExact(op2))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op2)) {
            b = 0.0;
            if (unlikely(zerodivision_check && ((b) == 0.0))) { PyErr_SetString(PyExc_ZeroDivisionError, "float division by zero"); return NULL;}
        } else if (__Pyx_PyLong_IsCompact(op2)) {
            b = (double) __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        b = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    b = PyLong_AsDouble(op2);
                    if (unlikely(b == -1.0 && PyErr_Occurred())) return NULL;
                    #if !CYTHON_USE_PYLONG_INTERNALS
                    if (unlikely(zerodivision_check && ((b) == 0.0))) { PyErr_SetString(PyExc_ZeroDivisionError, "float division by zero"); return NULL;}
                    #endif
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceTrueDivide : PyNumber_TrueDivide)(op1, op2);
    }
        PyFPE_START_PROTECT("divide", return NULL)
        result = a / b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* PyObjectCallOneArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *args[2] = {NULL, arg};
    return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* PyObjectSetAttrStr */
#if CYTHON_USE_TYPE_SLOTS
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#endif

/* GetItemInt */
static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (unlikely(!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 {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_subscript) {
            PyObject *r, *key = PyInt_FromSsize_t(i);
            if (unlikely(!key)) return NULL;
            r = mm->mp_subscript(o, key);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return NULL;
                    PyErr_Clear();
                }
            }
            return sm->sq_item(o, i);
        }
    }
#else
    if (is_list || !PyMapping_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

/* ObjectGetItem */
#if CYTHON_USE_TYPE_SLOTS
static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
    PyObject *runerr = NULL;
    Py_ssize_t key_value;
    key_value = __Pyx_PyIndex_AsSsize_t(index);
    if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
        return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
    }
    if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
        __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index));
        PyErr_Clear();
        PyErr_Format(PyExc_IndexError,
            "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
        __Pyx_DECREF_TypeName(index_type_name);
    }
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
    __Pyx_TypeName obj_type_name;
    if (likely(PyType_Check(obj))) {
        PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem);
        if (!meth) {
            PyErr_Clear();
        } else {
            PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
            Py_DECREF(meth);
            return result;
        }
    }
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    PyErr_Format(PyExc_TypeError,
        "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    return NULL;
}
static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
    PyTypeObject *tp = Py_TYPE(obj);
    PyMappingMethods *mm = tp->tp_as_mapping;
    PySequenceMethods *sm = tp->tp_as_sequence;
    if (likely(mm && mm->mp_subscript)) {
        return mm->mp_subscript(obj, key);
    }
    if (likely(sm && sm->sq_item)) {
        return __Pyx_PyObject_GetIndex(obj, key);
    }
    return __Pyx_PyObject_GetItem_Slow(obj, key);
}
#endif

/* ModFloat[double] */
static CYTHON_INLINE double __Pyx_mod_double(double a, double b) {
    double r = fmod(a, b);
    r += ((r != 0) & ((r < 0) ^ (b < 0))) * b;
    return r;
}

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_SubtractObjC(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double b = floatval;
    double a, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op1))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        a = __pyx_PyFloat_AsDouble(op1);
#else
        a = PyFloat_AS_DOUBLE(op1);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        a = (double) PyInt_AS_LONG(op1);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op1))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op1)) {
            a = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op1)) {
            a = (double) __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        a = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        a = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (a < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                a = -a;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    a = PyLong_AsDouble(op1);
                    if (unlikely(a == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
    }
        PyFPE_START_PROTECT("subtract", return NULL)
        result = a - b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_SubtractCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double a = floatval;
    double b, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op2))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        b = __pyx_PyFloat_AsDouble(op2);
#else
        b = PyFloat_AS_DOUBLE(op2);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        b = (double) PyInt_AS_LONG(op2);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op2))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op2)) {
            b = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op2)) {
            b = (double) __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        b = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    b = PyLong_AsDouble(op2);
                    if (unlikely(b == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
    }
        PyFPE_START_PROTECT("subtract", return NULL)
        result = a - b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* ExtTypeTest */
static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
    __Pyx_TypeName obj_type_name;
    __Pyx_TypeName type_name;
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (likely(__Pyx_TypeCheck(obj, type)))
        return 1;
    obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
    type_name = __Pyx_PyType_GetName(type);
    PyErr_Format(PyExc_TypeError,
                 "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
                 obj_type_name, type_name);
    __Pyx_DECREF_TypeName(obj_type_name);
    __Pyx_DECREF_TypeName(type_name);
    return 0;
}

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            x = (long)((unsigned long)a - (unsigned long)b);
            if (likely((x^a) >= 0 || (x^~b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return PyLong_FromLong(-intval);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
            }
        }
                x = a - b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla - llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("subtract", return NULL)
            result = ((double)a) - (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#endif

/* PyFloatBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyFloat_AddCObj(PyObject *op1, PyObject *op2, double floatval, int inplace, int zerodivision_check) {
    const double a = floatval;
    double b, result;
    CYTHON_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    if (likely(PyFloat_CheckExact(op2))) {
#if CYTHON_COMPILING_IN_LIMITED_API
        b = __pyx_PyFloat_AsDouble(op2);
#else
        b = PyFloat_AS_DOUBLE(op2);
#endif
        
    } else
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        b = (double) PyInt_AS_LONG(op2);
        
    } else
    #endif
    if (likely(PyLong_CheckExact(op2))) {
        #if CYTHON_USE_PYLONG_INTERNALS
        if (__Pyx_PyLong_IsZero(op2)) {
            b = 0.0;
            
        } else if (__Pyx_PyLong_IsCompact(op2)) {
            b = (double) __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                case 2:
                    if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (1 * PyLong_SHIFT < 53))) {
                        b = (double) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -2)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                case 3:
                    if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (2 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -3)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                case 4:
                    if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT && ((8 * sizeof(unsigned long) < 53) || (3 * PyLong_SHIFT < 53))) {
                        b = (double) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        if ((8 * sizeof(unsigned long) < 53) || (4 * PyLong_SHIFT < 53) || (b < (double) ((PY_LONG_LONG)1 << 53))) {
                            if (size == -4)
                                b = -b;
                            break;
                        }
                    }
                    CYTHON_FALLTHROUGH;
                default:
        #endif
                    b = PyLong_AsDouble(op2);
                    if (unlikely(b == -1.0 && PyErr_Occurred())) return NULL;
        #if CYTHON_USE_PYLONG_INTERNALS
            }
        }
        #endif
    } else {
        return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
    }
        PyFPE_START_PROTECT("add", return NULL)
        result = a + b;
        PyFPE_END_PROTECT(result)
        return PyFloat_FromDouble(result);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long x;
        long a = PyInt_AS_LONG(op1);
        
            x = (long)((unsigned long)a + (unsigned long)b);
            if (likely((x^a) >= 0 || (x^b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_add(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op2);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_add(op1, op2);
            }
        }
                x = a + b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla + llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("add", return NULL)
            result = ((double)a) + (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2);
}
#endif

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_SubtractCObj(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op2))) {
        const long a = intval;
        long x;
        long b = PyInt_AS_LONG(op2);
        
            x = (long)((unsigned long)a - (unsigned long)b);
            if (likely((x^a) >= 0 || (x^~b) >= 0))
                return PyInt_FromLong(x);
            return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op2))) {
        const long a = intval;
        long b, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG lla = intval;
        PY_LONG_LONG llb, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op2))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op2))) {
            b = __Pyx_PyLong_CompactValue(op2);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op2);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op2);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) {
                        b = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) {
                        b = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) {
                        b = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) {
                        llb = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_subtract(op1, op2);
            }
        }
                x = a - b;
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla - llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op2)) {
        const long a = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double b = __pyx_PyFloat_AsDouble(op2);
#else
        double b = PyFloat_AS_DOUBLE(op2);
#endif
            double result;
            
            PyFPE_START_PROTECT("subtract", return NULL)
            result = ((double)a) - (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceSubtract : PyNumber_Subtract)(op1, op2);
}
#endif

/* SoftComplexToDouble */
static double __Pyx_SoftComplexToDouble(__pyx_t_double_complex value, int have_gil) {
    if (unlikely(__Pyx_CIMAG(value))) {
        PyGILState_STATE gilstate;
        if (!have_gil)
            gilstate = PyGILState_Ensure();
        PyErr_SetString(PyExc_TypeError,
            "Cannot convert 'complex' with non-zero imaginary component to 'double' "
            "(this most likely comes from the '**' operator; "
            "use 'cython.cpow(True)' to return 'nan' instead of a "
            "complex number).");
        if (!have_gil)
            PyGILState_Release(gilstate);
        return -1.;
    }
    return __Pyx_CREAL(value);
}

/* JoinPyUnicode */
static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
                                      Py_UCS4 max_char) {
#if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    PyObject *result_uval;
    int result_ukind, kind_shift;
    Py_ssize_t i, char_pos;
    void *result_udata;
    CYTHON_MAYBE_UNUSED_VAR(max_char);
#if CYTHON_PEP393_ENABLED
    result_uval = PyUnicode_New(result_ulength, max_char);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
    kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_DATA(result_uval);
#else
    result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
    if (unlikely(!result_uval)) return NULL;
    result_ukind = sizeof(Py_UNICODE);
    kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1;
    result_udata = PyUnicode_AS_UNICODE(result_uval);
#endif
    assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
    char_pos = 0;
    for (i=0; i < value_count; i++) {
        int ukind;
        Py_ssize_t ulength;
        void *udata;
        PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
        if (unlikely(__Pyx_PyUnicode_READY(uval)))
            goto bad;
        ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
        if (unlikely(!ulength))
            continue;
        if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
            goto overflow;
        ukind = __Pyx_PyUnicode_KIND(uval);
        udata = __Pyx_PyUnicode_DATA(uval);
        if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
            memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
        } else {
            #if PY_VERSION_HEX >= 0x030d0000
            if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
            #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
            _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
            #else
            Py_ssize_t j;
            for (j=0; j < ulength; j++) {
                Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
                __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
            }
            #endif
        }
        char_pos += ulength;
    }
    return result_uval;
overflow:
    PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
bad:
    Py_DECREF(result_uval);
    return NULL;
#else
    CYTHON_UNUSED_VAR(max_char);
    CYTHON_UNUSED_VAR(result_ulength);
    CYTHON_UNUSED_VAR(value_count);
    return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
#endif
}

/* SetItemInt */
static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
    int r;
    if (unlikely(!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 {
        PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
        PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
        if (mm && mm->mp_ass_subscript) {
            int r;
            PyObject *key = PyInt_FromSsize_t(i);
            if (unlikely(!key)) return -1;
            r = mm->mp_ass_subscript(o, key, v);
            Py_DECREF(key);
            return r;
        }
        if (likely(sm && sm->sq_ass_item)) {
            if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
                Py_ssize_t l = sm->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (!PyErr_ExceptionMatches(PyExc_OverflowError))
                        return -1;
                    PyErr_Clear();
                }
            }
            return sm->sq_ass_item(o, i, v);
        }
    }
#else
    if (is_list || !PyMapping_Check(o))
    {
        return PySequence_SetItem(o, i, v);
    }
#endif
    return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
}

/* GetAttr */
static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
#if CYTHON_USE_TYPE_SLOTS
#if PY_MAJOR_VERSION >= 3
    if (likely(PyUnicode_Check(n)))
#else
    if (likely(PyString_Check(n)))
#endif
        return __Pyx_PyObject_GetAttrStr(o, n);
#endif
    return PyObject_GetAttr(o, n);
}

/* HasAttr */
#if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
    PyObject *r;
    if (unlikely(!__Pyx_PyBaseString_Check(n))) {
        PyErr_SetString(PyExc_TypeError,
                        "hasattr(): attribute name must be string");
        return -1;
    }
    r = __Pyx_GetAttr(o, n);
    if (!r) {
        PyErr_Clear();
        return 0;
    } else {
        Py_DECREF(r);
        return 1;
    }
}
#endif

/* CallNextTpTraverse */
static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, traverseproc current_tp_traverse) {
    PyTypeObject* type = Py_TYPE(obj);
    traverseproc tp_traverse = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc) != current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_traverse = __Pyx_PyType_GetSlot(type, tp_traverse, traverseproc)) == current_tp_traverse)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_traverse)
        return tp_traverse(obj, v, a);
    return 0;
}

/* CallNextTpClear */
static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
    PyTypeObject* type = Py_TYPE(obj);
    inquiry tp_clear = NULL;
    while (type && __Pyx_PyType_GetSlot(type, tp_clear, inquiry) != current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    while (type && (tp_clear = __Pyx_PyType_GetSlot(type, tp_clear, inquiry)) == current_tp_clear)
        type = __Pyx_PyType_GetSlot(type, tp_base, PyTypeObject*);
    if (type && tp_clear)
        tp_clear(obj);
}

/* PyObjectCallNoArg */
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
    PyObject *arg[2] = {NULL, NULL};
    return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
}

/* 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
    __Pyx_TypeName type_name;
    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 defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
        if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
#elif PY_MAJOR_VERSION >= 3
        #ifdef __Pyx_CyFunction_USED
        if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
        #else
        if (likely(PyFunction_Check(descr) || __Pyx_IS_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 (likely(descr != NULL)) {
        *method = descr;
        return 0;
    }
    type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    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;
}

/* ValidateBasesTuple */
#if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
    Py_ssize_t i, n;
#if CYTHON_ASSUME_SAFE_MACROS
    n = PyTuple_GET_SIZE(bases);
#else
    n = PyTuple_Size(bases);
    if (n < 0) return -1;
#endif
    for (i = 1; i < n; i++)
    {
#if CYTHON_AVOID_BORROWED_REFS
        PyObject *b0 = PySequence_GetItem(bases, i);
        if (!b0) return -1;
#elif CYTHON_ASSUME_SAFE_MACROS
        PyObject *b0 = PyTuple_GET_ITEM(bases, i);
#else
        PyObject *b0 = PyTuple_GetItem(bases, i);
        if (!b0) return -1;
#endif
        PyTypeObject *b;
#if PY_MAJOR_VERSION < 3
        if (PyClass_Check(b0))
        {
            PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class",
                         PyString_AS_STRING(((PyClassObject*)b0)->cl_name));
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
#endif
        b = (PyTypeObject*) b0;
        if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
        {
            __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
            PyErr_Format(PyExc_TypeError,
                "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
            __Pyx_DECREF_TypeName(b_name);
#if CYTHON_AVOID_BORROWED_REFS
            Py_DECREF(b0);
#endif
            return -1;
        }
        if (dictoffset == 0)
        {
            Py_ssize_t b_dictoffset = 0;
#if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
            b_dictoffset = b->tp_dictoffset;
#else
            PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
            if (!py_b_dictoffset) goto dictoffset_return;
            b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
            Py_DECREF(py_b_dictoffset);
            if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
#endif
            if (b_dictoffset) {
                {
                    __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
                    PyErr_Format(PyExc_TypeError,
                        "extension type '%.200s' has no __dict__ slot, "
                        "but base type '" __Pyx_FMT_TYPENAME "' has: "
                        "either add 'cdef dict __dict__' to the extension type "
                        "or add '__slots__ = [...]' to the base type",
                        type_name, b_name);
                    __Pyx_DECREF_TypeName(b_name);
                }
#if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY)
              dictoffset_return:
#endif
#if CYTHON_AVOID_BORROWED_REFS
                Py_DECREF(b0);
#endif
                return -1;
            }
        }
#if CYTHON_AVOID_BORROWED_REFS
        Py_DECREF(b0);
#endif
    }
    return 0;
}
#endif

/* PyType_Ready */
static int __Pyx_PyType_Ready(PyTypeObject *t) {
#if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION)
    (void)__Pyx_PyObject_CallMethod0;
#if CYTHON_USE_TYPE_SPECS
    (void)__Pyx_validate_bases_tuple;
#endif
    return PyType_Ready(t);
#else
    int r;
    PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
    if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
        return -1;
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
    {
        int gc_was_enabled;
    #if PY_VERSION_HEX >= 0x030A00b1
        gc_was_enabled = PyGC_Disable();
        (void)__Pyx_PyObject_CallMethod0;
    #else
        PyObject *ret, *py_status;
        PyObject *gc = NULL;
        #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400)
        gc = PyImport_GetModule(__pyx_kp_u_gc);
        #endif
        if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc);
        if (unlikely(!gc)) return -1;
        py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled);
        if (unlikely(!py_status)) {
            Py_DECREF(gc);
            return -1;
        }
        gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
        Py_DECREF(py_status);
        if (gc_was_enabled > 0) {
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable);
            if (unlikely(!ret)) {
                Py_DECREF(gc);
                return -1;
            }
            Py_DECREF(ret);
        } else if (unlikely(gc_was_enabled == -1)) {
            Py_DECREF(gc);
            return -1;
        }
    #endif
        t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
#if PY_VERSION_HEX >= 0x030A0000
        t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
#endif
#else
        (void)__Pyx_PyObject_CallMethod0;
#endif
    r = PyType_Ready(t);
#if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
        t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
    #if PY_VERSION_HEX >= 0x030A00b1
        if (gc_was_enabled)
            PyGC_Enable();
    #else
        if (gc_was_enabled) {
            PyObject *tp, *v, *tb;
            PyErr_Fetch(&tp, &v, &tb);
            ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable);
            if (likely(ret || r == -1)) {
                Py_XDECREF(ret);
                PyErr_Restore(tp, v, tb);
            } else {
                Py_XDECREF(tp);
                Py_XDECREF(v);
                Py_XDECREF(tb);
                r = -1;
            }
        }
        Py_DECREF(gc);
    #endif
    }
#endif
    return r;
#endif
}

/* PyObject_GenericGetAttrNoDict */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
    __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp);
    PyErr_Format(PyExc_AttributeError,
#if PY_MAJOR_VERSION >= 3
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
                 type_name, attr_name);
#else
                 "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
                 type_name, PyString_AS_STRING(attr_name));
#endif
    __Pyx_DECREF_TypeName(type_name);
    return NULL;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
    PyObject *descr;
    PyTypeObject *tp = Py_TYPE(obj);
    if (unlikely(!PyString_Check(attr_name))) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    assert(!tp->tp_dictoffset);
    descr = _PyType_Lookup(tp, attr_name);
    if (unlikely(!descr)) {
        return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
    }
    Py_INCREF(descr);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
    #endif
    {
        descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
        if (unlikely(f)) {
            PyObject *res = f(descr, obj, (PyObject *)tp);
            Py_DECREF(descr);
            return res;
        }
    }
    return descr;
}
#endif

/* PyObject_GenericGetAttr */
#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
    if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
        return PyObject_GenericGetAttr(obj, attr_name);
    }
    return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
}
#endif

/* SetVTable */
static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
    PyObject *ob = PyCapsule_New(vtable, 0, 0);
    if (unlikely(!ob))
        goto bad;
#if CYTHON_COMPILING_IN_LIMITED_API
    if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0))
#else
    if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0))
#endif
        goto bad;
    Py_DECREF(ob);
    return 0;
bad:
    Py_XDECREF(ob);
    return -1;
}

/* GetVTable */
static void* __Pyx_GetVtable(PyTypeObject *type) {
    void* ptr;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable);
#else
    PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable);
#endif
    if (!ob)
        goto bad;
    ptr = PyCapsule_GetPointer(ob, 0);
    if (!ptr && !PyErr_Occurred())
        PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
    Py_DECREF(ob);
    return ptr;
bad:
    Py_XDECREF(ob);
    return NULL;
}

/* MergeVTables */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_MergeVtables(PyTypeObject *type) {
    int i;
    void** base_vtables;
    __Pyx_TypeName tp_base_name;
    __Pyx_TypeName base_name;
    void* unknown = (void*)-1;
    PyObject* bases = type->tp_bases;
    int base_depth = 0;
    {
        PyTypeObject* base = type->tp_base;
        while (base) {
            base_depth += 1;
            base = base->tp_base;
        }
    }
    base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
    base_vtables[0] = unknown;
    for (i = 1; i < PyTuple_GET_SIZE(bases); i++) {
        void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i)));
        if (base_vtable != NULL) {
            int j;
            PyTypeObject* base = type->tp_base;
            for (j = 0; j < base_depth; j++) {
                if (base_vtables[j] == unknown) {
                    base_vtables[j] = __Pyx_GetVtable(base);
                    base_vtables[j + 1] = unknown;
                }
                if (base_vtables[j] == base_vtable) {
                    break;
                } else if (base_vtables[j] == NULL) {
                    goto bad;
                }
                base = base->tp_base;
            }
        }
    }
    PyErr_Clear();
    free(base_vtables);
    return 0;
bad:
    tp_base_name = __Pyx_PyType_GetName(type->tp_base);
    base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i));
    PyErr_Format(PyExc_TypeError,
        "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
    __Pyx_DECREF_TypeName(tp_base_name);
    __Pyx_DECREF_TypeName(base_name);
    free(base_vtables);
    return -1;
}
#endif

/* SetupReduce */
#if !CYTHON_COMPILING_IN_LIMITED_API
static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
  int ret;
  PyObject *name_attr;
  name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name);
  if (likely(name_attr)) {
      ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
  } else {
      ret = -1;
  }
  if (unlikely(ret < 0)) {
      PyErr_Clear();
      ret = 0;
  }
  Py_XDECREF(name_attr);
  return ret;
}
static int __Pyx_setup_reduce(PyObject* type_obj) {
    int ret = 0;
    PyObject *object_reduce = NULL;
    PyObject *object_getstate = NULL;
    PyObject *object_reduce_ex = NULL;
    PyObject *reduce = NULL;
    PyObject *reduce_ex = NULL;
    PyObject *reduce_cython = NULL;
    PyObject *setstate = NULL;
    PyObject *setstate_cython = NULL;
    PyObject *getstate = NULL;
#if CYTHON_USE_PYTYPE_LOOKUP
    getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
#else
    getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
    if (!getstate && PyErr_Occurred()) {
        goto __PYX_BAD;
    }
#endif
    if (getstate) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
#else
        object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
        if (!object_getstate && PyErr_Occurred()) {
            goto __PYX_BAD;
        }
#endif
        if (object_getstate != getstate) {
            goto __PYX_GOOD;
        }
    }
#if CYTHON_USE_PYTYPE_LOOKUP
    object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#else
    object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
#endif
    reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
    if (reduce_ex == object_reduce_ex) {
#if CYTHON_USE_PYTYPE_LOOKUP
        object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#else
        object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
#endif
        reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
        if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
            reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
            if (likely(reduce_cython)) {
                ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
            } else if (reduce == object_reduce || PyErr_Occurred()) {
                goto __PYX_BAD;
            }
            setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate);
            if (!setstate) PyErr_Clear();
            if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
                setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
                if (likely(setstate_cython)) {
                    ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                    ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
                } else if (!setstate || PyErr_Occurred()) {
                    goto __PYX_BAD;
                }
            }
            PyType_Modified((PyTypeObject*)type_obj);
        }
    }
    goto __PYX_GOOD;
__PYX_BAD:
    if (!PyErr_Occurred()) {
        __Pyx_TypeName type_obj_name =
            __Pyx_PyType_GetName((PyTypeObject*)type_obj);
        PyErr_Format(PyExc_RuntimeError,
            "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
        __Pyx_DECREF_TypeName(type_obj_name);
    }
    ret = -1;
__PYX_GOOD:
#if !CYTHON_USE_PYTYPE_LOOKUP
    Py_XDECREF(object_reduce);
    Py_XDECREF(object_reduce_ex);
    Py_XDECREF(object_getstate);
    Py_XDECREF(getstate);
#endif
    Py_XDECREF(reduce);
    Py_XDECREF(reduce_ex);
    Py_XDECREF(reduce_cython);
    Py_XDECREF(setstate);
    Py_XDECREF(setstate_cython);
    return ret;
}
#endif

/* TypeImport */
#ifndef __PYX_HAVE_RT_ImportType_3_0_8
#define __PYX_HAVE_RT_ImportType_3_0_8
static PyTypeObject *__Pyx_ImportType_3_0_8(PyObject *module, const char *module_name, const char *class_name,
    size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_8 check_size)
{
    PyObject *result = 0;
    char warning[200];
    Py_ssize_t basicsize;
    Py_ssize_t itemsize;
#if CYTHON_COMPILING_IN_LIMITED_API
    PyObject *py_basicsize;
    PyObject *py_itemsize;
#endif
    result = PyObject_GetAttrString(module, class_name);
    if (!result)
        goto bad;
    if (!PyType_Check(result)) {
        PyErr_Format(PyExc_TypeError,
            "%.200s.%.200s is not a type object",
            module_name, class_name);
        goto bad;
    }
#if !CYTHON_COMPILING_IN_LIMITED_API
    basicsize = ((PyTypeObject *)result)->tp_basicsize;
    itemsize = ((PyTypeObject *)result)->tp_itemsize;
#else
    py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
    if (!py_basicsize)
        goto bad;
    basicsize = PyLong_AsSsize_t(py_basicsize);
    Py_DECREF(py_basicsize);
    py_basicsize = 0;
    if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
    py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
    if (!py_itemsize)
        goto bad;
    itemsize = PyLong_AsSsize_t(py_itemsize);
    Py_DECREF(py_itemsize);
    py_itemsize = 0;
    if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
        goto bad;
#endif
    if (itemsize) {
        if (size % alignment) {
            alignment = size % alignment;
        }
        if (itemsize < (Py_ssize_t)alignment)
            itemsize = (Py_ssize_t)alignment;
    }
    if ((size_t)(basicsize + itemsize) < size) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd from PyObject",
            module_name, class_name, size, basicsize+itemsize);
        goto bad;
    }
    if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_8 &&
            ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
        PyErr_Format(PyExc_ValueError,
            "%.200s.%.200s size changed, may indicate binary incompatibility. "
            "Expected %zd from C header, got %zd-%zd from PyObject",
            module_name, class_name, size, basicsize, basicsize+itemsize);
        goto bad;
    }
    else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_8 && (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

/* PyIntBinop */
#if !CYTHON_COMPILING_IN_PYPY
static PyObject* __Pyx_PyInt_MultiplyObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check) {
    CYTHON_MAYBE_UNUSED_VAR(intval);
    CYTHON_MAYBE_UNUSED_VAR(inplace);
    CYTHON_UNUSED_VAR(zerodivision_check);
    #if PY_MAJOR_VERSION < 3
    if (likely(PyInt_CheckExact(op1))) {
        const long b = intval;
        long a = PyInt_AS_LONG(op1);
        
#ifdef HAVE_LONG_LONG
            if (sizeof(PY_LONG_LONG) > sizeof(long)) {
                PY_LONG_LONG result = (PY_LONG_LONG)a * (PY_LONG_LONG)b;
                return (result >= LONG_MIN && result <= LONG_MAX) ?
                    PyInt_FromLong((long)result) : PyLong_FromLongLong(result);
            }
#endif
#if CYTHON_USE_TYPE_SLOTS
            return PyInt_Type.tp_as_number->nb_multiply(op1, op2);
#else
            return PyNumber_Multiply(op1, op2);
#endif
    }
    #endif
    #if CYTHON_USE_PYLONG_INTERNALS
    if (likely(PyLong_CheckExact(op1))) {
        const long b = intval;
        long a, x;
#ifdef HAVE_LONG_LONG
        const PY_LONG_LONG llb = intval;
        PY_LONG_LONG lla, llx;
#endif
        if (unlikely(__Pyx_PyLong_IsZero(op1))) {
            return __Pyx_NewRef(op1);
        }
        if (likely(__Pyx_PyLong_IsCompact(op1))) {
            a = __Pyx_PyLong_CompactValue(op1);
        } else {
            const digit* digits = __Pyx_PyLong_Digits(op1);
            const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(op1);
            switch (size) {
                case -2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 2:
                    if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT+30) {
                        a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 3:
                    if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT+30) {
                        a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case -4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                case 4:
                    if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT+30) {
                        a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]));
                        break;
                    #ifdef HAVE_LONG_LONG
                    } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT+30) {
                        lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0]));
                        goto long_long;
                    #endif
                    }
                    CYTHON_FALLTHROUGH;
                default: return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
            }
        }
                CYTHON_UNUSED_VAR(a);
                CYTHON_UNUSED_VAR(b);
                #ifdef HAVE_LONG_LONG
                lla = a;
                goto long_long;
                #else
                return PyLong_Type.tp_as_number->nb_multiply(op1, op2);
                #endif
            return PyLong_FromLong(x);
#ifdef HAVE_LONG_LONG
        long_long:
                llx = lla * llb;
            return PyLong_FromLongLong(llx);
#endif
        
        
    }
    #endif
    if (PyFloat_CheckExact(op1)) {
        const long b = intval;
#if CYTHON_COMPILING_IN_LIMITED_API
        double a = __pyx_PyFloat_AsDouble(op1);
#else
        double a = PyFloat_AS_DOUBLE(op1);
#endif
            double result;
            
            PyFPE_START_PROTECT("multiply", return NULL)
            result = ((double)a) * (double)b;
            PyFPE_END_PROTECT(result)
            return PyFloat_FromDouble(result);
    }
    return (inplace ? PyNumber_InPlaceMultiply : PyNumber_Multiply)(op1, op2);
}
#endif

/* CLineInTraceback */
#ifndef CYTHON_CLINE_IN_TRACEBACK
static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
    PyObject *use_cline;
    PyObject *ptype, *pvalue, *ptraceback;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject **cython_runtime_dict;
#endif
    CYTHON_MAYBE_UNUSED_VAR(tstate);
    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_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
      if (use_cline_obj) {
        use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
        Py_DECREF(use_cline_obj);
      } else {
        PyErr_Clear();
        use_cline = NULL;
      }
    }
    if (!use_cline) {
        c_line = 0;
        (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
    }
    else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
        c_line = 0;
    }
    __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
    return c_line;
}
#endif

/* CodeObjectCache */
#if !CYTHON_COMPILING_IN_LIMITED_API
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);
}
#endif

/* AddTraceback */
#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
#if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
  #ifndef Py_BUILD_CORE
    #define Py_BUILD_CORE 1
  #endif
  #include "internal/pycore_frame.h"
#endif
#if CYTHON_COMPILING_IN_LIMITED_API
static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
                                                       PyObject *firstlineno, PyObject *name) {
    PyObject *replace = NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
    if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
    replace = PyObject_GetAttrString(code, "replace");
    if (likely(replace)) {
        PyObject *result;
        result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
        Py_DECREF(replace);
        return result;
    }
    PyErr_Clear();
    #if __PYX_LIMITED_VERSION_HEX < 0x030780000
    {
        PyObject *compiled = NULL, *result = NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
        if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
        compiled = Py_CompileString(
            "out = type(code)(\n"
            "  code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
            "  code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
            "  code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
            "  code.co_lnotab)\n", "<dummy>", Py_file_input);
        if (!compiled) return NULL;
        result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
        Py_DECREF(compiled);
        if (!result) PyErr_Print();
        Py_DECREF(result);
        result = PyDict_GetItemString(scratch_dict, "out");
        if (result) Py_INCREF(result);
        return result;
    }
    #else
    return NULL;
    #endif
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
    PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
    PyObject *exc_type, *exc_value, *exc_traceback;
    int success = 0;
    if (c_line) {
        (void) __pyx_cfilenm;
        (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
    }
    PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
    code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
    if (unlikely(!code_object)) goto bad;
    py_py_line = PyLong_FromLong(py_line);
    if (unlikely(!py_py_line)) goto bad;
    py_funcname = PyUnicode_FromString(funcname);
    if (unlikely(!py_funcname)) goto bad;
    dict = PyDict_New();
    if (unlikely(!dict)) goto bad;
    {
        PyObject *old_code_object = code_object;
        code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
        Py_DECREF(old_code_object);
    }
    if (unlikely(!code_object)) goto bad;
    getframe = PySys_GetObject("_getframe");
    if (unlikely(!getframe)) goto bad;
    if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
    frame = PyEval_EvalCode(code_object, dict, dict);
    if (unlikely(!frame) || frame == Py_None) goto bad;
    success = 1;
  bad:
    PyErr_Restore(exc_type, exc_value, exc_traceback);
    Py_XDECREF(code_object);
    Py_XDECREF(py_py_line);
    Py_XDECREF(py_funcname);
    Py_XDECREF(dict);
    Py_XDECREF(replace);
    if (success) {
        PyTraceBack_Here(
            (struct _frame*)frame);
    }
    Py_XDECREF(frame);
}
#else
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = NULL;
    PyObject *py_funcname = NULL;
    #if PY_MAJOR_VERSION < 3
    PyObject *py_srcfile = NULL;
    py_srcfile = PyString_FromString(filename);
    if (!py_srcfile) goto bad;
    #endif
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        if (!py_funcname) goto bad;
        funcname = PyUnicode_AsUTF8(py_funcname);
        if (!funcname) goto bad;
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        if (!py_funcname) goto bad;
        #endif
    }
    #if PY_MAJOR_VERSION < 3
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    #else
    py_code = PyCode_NewEmpty(filename, funcname, py_line);
    #endif
    Py_XDECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_funcname);
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(py_srcfile);
    #endif
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}
#endif

/* 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;\
    }

/* Declarations */
#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
  #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 && (1) && (!0 || __cplusplus)
#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) && (a.real >= 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 && (1) && (!0 || __cplusplus)
  #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 && (1) && (!0 || __cplusplus)
#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) && (a.real >= 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

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* CIntFromPy */
static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const int neg_one = (int) -1, const_zero = (int) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(int) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
                                return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
                                return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
                                return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (int) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(int) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    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
            }
        }
        {
            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 ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (int) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (int) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (int) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (int) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (int) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((int) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((int) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            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;
}

/* CIntFromPy */
static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if ((sizeof(long) < sizeof(long))) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_USE_PYLONG_INTERNALS
            if (unlikely(__Pyx_PyLong_IsNeg(x))) {
                goto raise_neg_overflow;
            } else if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_DigitCount(x)) {
                    case 2:
                        if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
                                return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                    case 3:
                        if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
                                return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                    case 4:
                        if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
                            if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
                                __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
                            } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
                                return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
                            }
                        }
                        break;
                }
            }
#endif
#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
#else
            {
                int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                if (unlikely(result < 0))
                    return (long) -1;
                if (unlikely(result == 1))
                    goto raise_neg_overflow;
            }
#endif
            if ((sizeof(long) <= sizeof(unsigned long))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
#ifdef HAVE_LONG_LONG
            } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
                __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
#endif
            }
        } else {
#if CYTHON_USE_PYLONG_INTERNALS
            if (__Pyx_PyLong_IsCompact(x)) {
                __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
            } else {
                const digit* digits = __Pyx_PyLong_Digits(x);
                assert(__Pyx_PyLong_DigitCount(x) > 1);
                switch (__Pyx_PyLong_SignedDigitCount(x)) {
                    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
            }
        }
        {
            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 ret = -1;
#if PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                ret = _PyLong_AsByteArray((PyLongObject *)v,
                                           bytes, sizeof(val),
                                           is_little, !is_unsigned);
#else
                PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
                int bits, remaining_bits, is_negative = 0;
                long idigit;
                int chunk_size = (sizeof(long) < 8) ? 30 : 62;
                if (unlikely(!PyLong_CheckExact(v))) {
                    PyObject *tmp = v;
                    v = PyNumber_Long(v);
                    assert(PyLong_CheckExact(v));
                    Py_DECREF(tmp);
                    if (unlikely(!v)) return (long) -1;
                }
#if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                if (Py_SIZE(x) == 0)
                    return (long) 0;
                is_negative = Py_SIZE(x) < 0;
#else
                {
                    int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
                    if (unlikely(result < 0))
                        return (long) -1;
                    is_negative = result == 1;
                }
#endif
                if (is_unsigned && unlikely(is_negative)) {
                    goto raise_neg_overflow;
                } else if (is_negative) {
                    stepval = PyNumber_Invert(v);
                    if (unlikely(!stepval))
                        return (long) -1;
                } else {
                    stepval = __Pyx_NewRef(v);
                }
                val = (long) 0;
                mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
                shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
                for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
                    PyObject *tmp, *digit;
                    digit = PyNumber_And(stepval, mask);
                    if (unlikely(!digit)) goto done;
                    idigit = PyLong_AsLong(digit);
                    Py_DECREF(digit);
                    if (unlikely(idigit < 0)) goto done;
                    tmp = PyNumber_Rshift(stepval, shift);
                    if (unlikely(!tmp)) goto done;
                    Py_DECREF(stepval); stepval = tmp;
                    val |= ((long) idigit) << bits;
                    #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
                    if (Py_SIZE(stepval) == 0)
                        goto unpacking_done;
                    #endif
                }
                idigit = PyLong_AsLong(stepval);
                if (unlikely(idigit < 0)) goto done;
                remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
                if (unlikely(idigit >= (1L << remaining_bits)))
                    goto raise_overflow;
                val |= ((long) idigit) << bits;
            #if CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030B0000
            unpacking_done:
            #endif
                if (!is_unsigned) {
                    if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
                        goto raise_overflow;
                    if (is_negative)
                        val = ~val;
                }
                ret = 0;
            done:
                Py_XDECREF(shift);
                Py_XDECREF(mask);
                Py_XDECREF(stepval);
#endif
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
            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;
}

/* CIntToPy */
static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
    const long neg_one = (long) -1, const_zero = (long) 0;
#ifdef __Pyx_HAS_GCC_DIAGNOSTIC
#pragma GCC diagnostic pop
#endif
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
            return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
#endif
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
#ifdef HAVE_LONG_LONG
        } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
            return PyLong_FromLongLong((PY_LONG_LONG) value);
#endif
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
#if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
#else
        PyObject *from_bytes, *result = NULL;
        PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
        from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
        if (!from_bytes) return NULL;
        py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
        if (!py_bytes) goto limited_bad;
        order_str = PyUnicode_FromString(little ? "little" : "big");
        if (!order_str) goto limited_bad;
        arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
        if (!arg_tuple) goto limited_bad;
        if (!is_unsigned) {
            kwds = PyDict_New();
            if (!kwds) goto limited_bad;
            if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
        }
        result = PyObject_Call(from_bytes, arg_tuple, kwds);
        limited_bad:
        Py_XDECREF(kwds);
        Py_XDECREF(arg_tuple);
        Py_XDECREF(order_str);
        Py_XDECREF(py_bytes);
        Py_XDECREF(from_bytes);
        return result;
#endif
    }
}

/* SoftComplexToPy */
static PyObject *__pyx_Py_FromSoftComplex(__pyx_t_double_complex value) {
    if (__Pyx_CIMAG(value)) {
        return PyComplex_FromDoubles(__Pyx_CREAL(value), __Pyx_CIMAG(value));
    } else {
        return PyFloat_FromDouble(__Pyx_CREAL(value));
    }
}

/* FormatTypeName */
#if CYTHON_COMPILING_IN_LIMITED_API
static __Pyx_TypeName
__Pyx_PyType_GetName(PyTypeObject* tp)
{
    PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
                                               __pyx_n_s_name);
    if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
        PyErr_Clear();
        Py_XDECREF(name);
        name = __Pyx_NewRef(__pyx_n_s__935);
    }
    return name;
}
#endif

/* FastTypeChecks */
#if CYTHON_COMPILING_IN_CPYTHON
static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
    while (a) {
        a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
        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);
}
static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
    PyObject *mro;
    if (cls == a || cls == b) return 1;
    mro = cls->tp_mro;
    if (likely(mro)) {
        Py_ssize_t i, n;
        n = PyTuple_GET_SIZE(mro);
        for (i = 0; i < n; i++) {
            PyObject *base = PyTuple_GET_ITEM(mro, i);
            if (base == (PyObject *)a || base == (PyObject *)b)
                return 1;
        }
        return 0;
    }
    return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, 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) {
    if (exc_type1) {
        return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
    } else {
        return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
    }
}
#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 unsigned long __Pyx_get_runtime_version(void) {
#if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
    return Py_Version & ~0xFFUL;
#else
    const char* rt_version = Py_GetVersion();
    unsigned long version = 0;
    unsigned long factor = 0x01000000UL;
    unsigned int digit = 0;
    int i = 0;
    while (factor) {
        while ('0' <= rt_version[i] && rt_version[i] <= '9') {
            digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
            ++i;
        }
        version += factor * digit;
        if (rt_version[i] != '.')
            break;
        digit = 0;
        factor >>= 8;
        ++i;
    }
    return version;
#endif
}
static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
    const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
    if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
        return 0;
    if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
        return 1;
    {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compile time Python version %d.%d "
                      "of module '%.100s' "
                      "%s "
                      "runtime version %d.%d",
                       (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
                       __Pyx_MODULE_NAME,
                       (allow_newer) ? "was newer than" : "does not match",
                       (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
       );
        return PyErr_WarnEx(NULL, message, 1);
    }
}

/* 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;
    cobj = PyCapsule_New(tmp.p, sig, 0);
    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;
}

/* FunctionImport */
#ifndef __PYX_HAVE_RT_ImportFunction_3_0_8
#define __PYX_HAVE_RT_ImportFunction_3_0_8
static int __Pyx_ImportFunction_3_0_8(PyObject *module, const char *funcname, void (**f)(void), const char *sig) {
    PyObject *d = 0;
    PyObject *cobj = 0;
    union {
        void (*fp)(void);
        void *p;
    } tmp;
    d = PyObject_GetAttrString(module, (char *)"__pyx_capi__");
    if (!d)
        goto bad;
    cobj = PyDict_GetItemString(d, funcname);
    if (!cobj) {
        PyErr_Format(PyExc_ImportError,
            "%.200s does not export expected C function %.200s",
                PyModule_GetName(module), funcname);
        goto bad;
    }
    if (!PyCapsule_IsValid(cobj, sig)) {
        PyErr_Format(PyExc_TypeError,
            "C function %.200s.%.200s has wrong signature (expected %.500s, got %.500s)",
             PyModule_GetName(module), funcname, sig, PyCapsule_GetName(cobj));
        goto bad;
    }
    tmp.p = PyCapsule_GetPointer(cobj, sig);
    *f = tmp.fp;
    if (!(*f))
        goto bad;
    Py_DECREF(d);
    return 0;
bad:
    Py_XDECREF(d);
    return -1;
}
#endif

/* InitStrings */
#if PY_MAJOR_VERSION >= 3
static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
    if (t.is_unicode | t.is_str) {
        if (t.intern) {
            *str = PyUnicode_InternFromString(t.s);
        } else if (t.encoding) {
            *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
        } else {
            *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
        }
    } else {
        *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
    }
    if (!*str)
        return -1;
    if (PyObject_Hash(*str) == -1)
        return -1;
    return 0;
}
#endif
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION >= 3
        __Pyx_InitString(*t, t->p);
        #else
        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);
        }
        if (!*t->p)
            return -1;
        if (PyObject_Hash(*t->p) == -1)
            return -1;
        #endif
        ++t;
    }
    return 0;
}

#include <string.h>
static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
    size_t len = strlen(s);
    if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
        PyErr_SetString(PyExc_OverflowError, "byte string is too long");
        return -1;
    }
    return (Py_ssize_t) len;
}
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
}
static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
    Py_ssize_t len = __Pyx_ssize_strlen(c_str);
    if (unlikely(len < 0)) return NULL;
    return PyByteArray_FromStringAndSize(c_str, len);
}
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 && !CYTHON_COMPILING_IN_LIMITED_API) || (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) {
    __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
#if PY_MAJOR_VERSION >= 3
    if (PyLong_Check(result)) {
        if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                "__int__ returned non-int (type " __Pyx_FMT_TYPENAME ").  "
                "The ability to return an instance of a strict subclass of int is deprecated, "
                "and may be removed in a future version of Python.",
                result_type_name)) {
            __Pyx_DECREF_TypeName(result_type_name);
            Py_DECREF(result);
            return NULL;
        }
        __Pyx_DECREF_TypeName(result_type_name);
        return result;
    }
#endif
    PyErr_Format(PyExc_TypeError,
                 "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
                 type_name, type_name, result_type_name);
    __Pyx_DECREF_TypeName(result_type_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
    if (likely(__Pyx_PyLong_IsCompact(b))) {
        return __Pyx_PyLong_CompactValue(b);
    } else {
      const digit* digits = __Pyx_PyLong_Digits(b);
      const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      switch (size) {
         case 2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -2:
           if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -3:
           if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case 4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
         case -4:
           if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
             return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
           }
           break;
      }
    }
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
#if PY_MAJOR_VERSION < 3
  } else if (likely(PyInt_CheckExact(o))) {
    return PyInt_AS_LONG(o);
#endif
  } else {
    Py_ssize_t ival;
    PyObject *x;
    x = PyNumber_Index(o);
    if (!x) return -1;
    ival = PyInt_AsLong(x);
    Py_DECREF(x);
    return ival;
  }
}
static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
  return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


/* #### Code section: utility_code_pragmas_end ### */
#ifdef _MSC_VER
#pragma warning( pop )
#endif



/* #### Code section: end ### */
#endif /* Py_PYTHON_H */
